AccessTr.neT
Rastgele Sayı - Baskı Önizleme

+- AccessTr.neT (https://accesstr.net)
+-- Forum: Microsoft Access (https://accesstr.net/forum-microsoft-access.html)
+--- Forum: Access Cevaplanmış Soruları (https://accesstr.net/forum-access-cevaplanmis-sorulari.html)
+--- Konu Başlığı: Rastgele Sayı (/konu-rastgele-sayi.html)

Sayfalar: 1 2


Rastgele Sayı - Gunalp Gunal - 21/11/2020

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...


RE: Rastgele Sayı - berduş - 21/11/2020

Daha once çıkan sayı bir yerlere kaydedilmiş mi?


RE: Rastgele Sayı - feraz - 21/11/2020

(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.


RE: Rastgele Sayı - berduş - 21/11/2020

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..


RE: Rastgele Sayı - feraz - 21/11/2020

[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



RE: Rastgele Sayı - berduş - 21/11/2020

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 '