Rastgele Sayı

1 2
21/11/2020, 15:14

Gunalp Gunal

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...
21/11/2020, 16:14

berduş

Daha once çıkan sayı bir yerlere kaydedilmiş mi?
21/11/2020, 16:19

feraz

(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.
21/11/2020, 16:29

berduş

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..
21/11/2020, 17:12

feraz



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
21/11/2020, 20:19

berduş

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 '
1 2