Zufallsdatensatz nur einmal ausgeben
PeterDoering
Gesendet: 06.02.13 23:14
Betreff: RE: Zufallsdatensatz nur einmal ausgeben



Extreme Veteran

Beiträge: 563
5002525
Hallo,

BetzMartin - 05.02.13 20:36
[Frage/Antwortspiel erstellen]
Ich habe dazu diesen Code verwendet:
Private Sub Form_Current()
Const csSQL = "SELECT TOP 1 ID FROM Fragen ORDER BY Rnd(ID)"
Me.Recordset.FindFirst "ID = " & CurrentDb().OpenRecordset(csSQL)(0)
End Sub

Soweit so gut! Jetzt möchte ich das die Fragen nur einmal gestellt werden und wenn alle Fragen durch sind eine kleine Zusammenfassung der Ergebnisse Gezeigt wird!

Dafür musst du die gefundenen IDs in eine Tabelle eintragen (im Beispiel Tmp1) und verhindern, dass diese wieder gelesen werden:

Const csSQL = "SELECT TOP 1 ID FROM Fragen LEFT JOIN Tmp1 ON Fragen.ID=Tmp1.ID WHERE Tmp1.ID Is Null ORDER BY Rnd(ID)"
Me.Recordset.FindFirst "ID = " & CurrentDb().OpenRecordset(csSQL)(0)
strSQL = "INSERT INTO Tmp1 ( ID) VALUES (" & Me.Recordset.Fields("ID").Value & ")"
CurrentDb.Execute strSQL, dbFailOnError

Mit Tabelle Tmp1 hast du noch weitere Möglichkeiten, nämlich die Antworten einzutragen und später in einem Formular auszuwerten.

-----
Gruss - Peter
Top of the page Bottom of the page