AccessTr.neT

Tam Versiyon: Rastgele Sayı
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2
Değerli arakadaşlar merhabalar... Basit bir sorum olacak... Uygulamamda;

Dim soru_sayisi
soru_sayisi = Int((33 * Rnd) + 1)
adj_id.Value = soru_sayisi

şeklinde rastgele sayı yazdırıyorum isteğim şudur ki daha önce seçilen sayı bir daha seçilmesin yardımcı olabilirseniz çok sevinirim. Şimdiden teşekkürler...
Daha once çıkan sayı bir yerlere kaydedilmiş mi?
(21/11/2020, 15:14)Gunalp Gunal yazdı: [ -> ]Değerli arakadaşlar merhabalar... Basit bir sorum olacak... Uygulamamda;

Dim soru_sayisi
soru_sayisi = Int((33 * Rnd) + 1)
adj_id.Value = soru_sayisi

şeklinde rastgele sayı yazdırıyorum isteğim şudur ki daha önce seçilen sayı bir daha seçilmesin yardımcı olabilirseniz çok sevinirim. Şimdiden teşekkürler...
Collection içine alınca olur.
Eğer tabloya kaydedilmisse
do while benzeri bir döngü işinize yarayabilir.
Do 
soru_sayisi = Int((33 * Rnd) + 1)
adj_id.Value = soru_sayisi
i=dcount("*","TabloAdi", "cikanlar=" & soru_sayisi )
Loop Until i<1 '
gibi..
[Resim: do.php?img=10603]

Option Compare Database
Dim dic As Object, i As Integer

Private Sub Form_Close()
    Set dic = Nothing
End Sub
Private Sub Form_Load()
    Set dic = CreateObject("Scripting.dictionary")
    Randomize
    For i = 1 To 33
        dic.Add i, i
    Next
End Sub
Private Sub Komut2_Click()
    Dim soru_sayisi
   
10:
    soru_sayisi = Int((33) * Rnd) + 1
    If Not dic.Exists(soru_sayisi) Then GoTo 10
    adj_id.Value = dic(soru_sayisi)
    If dic.Exists(soru_sayisi) Then dic.Remove (soru_sayisi)
    If dic.Count = 0 Then MsgBox "Sayilar Bitti", vbExclamation, "Bitti"
End Sub
Dim Cikanlar As String
Cikanlar = "|"
Randomize
Do
soru_sayisi = Int((33 * Rnd) + 1)
i = InStr(Cikanlar, "|" & soru_sayisi & "|")
If i = 0 Then
    Cikanlar = Cikanlar & soru_sayisi & "|"
    Exit Do
End If
Loop Until i < 1 '
Sayfalar: 1 2