asphelper.de - Tipps & Skripts - Zufälligen Datensatz anzeigen

Link: Wichtiger Hinweis in eigener Sache!


 Autor: Klaus Keller Erstellt am: 2006-08-15 Aufrufe: 6793 


 << Vorheriger Tipp Nächster Tipp >>



Tipp 93: Zufälligen Datensatz anzeigen



In diesem Tipp möchte ich Ihnen eine Möglickeit vorstellen, wie Sie einen zufälligen Datensatz ermitteln können. Eine einfache Beschreibung:
  • Anzahl der Datensätze ermitteln

  • Zufallszahl festlegen die zwischen 1 und Anzahl der Datensätze liegt

  • Geöffnetes Recordset um (Zufallszahl - 1) nach vorne bewegen


Warum Zufallszahl - 1? Das Recordset steht bereits auf Datensatz 1, soll der erste Datensatz angezeigt werden dann kann nicht die Anweisung gegeben werden, daß das Recordset um einen Datensatz bewegt werden soll. So sieht der Quellcode aus:
1   
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Public Sub ZufallsDatensatz()
    dim rs, strSQL, strConn, DatensatzID
    const adBookmarkCurrent = 0 '= Standard, startet beim aktuellen Datensatz.
    const adBookmarkFirst = 1 '= Startet beim ersten Datensatz vom Recordset
    const adBookmarkLast = 2 '= Startet beim letzten Datensatz, hier für eine
                                   'Veränderung eine negative Zahl angeben

    set rs = Server.CreateObject("ADODB.Recordset")
    
    strSQL = "SELECT * FROM tblTest"
    strConn = "Provider=Microsoft.Jet.oledb.4.0;Data Source=" & _
                Server.MapPath("db\Test.mdb")
    
    rs.open strSQL, strConn, 3, 3
    
    DatensatzID = GetZufallszahl(0, rs.RecordCount - 1)
    
    rs.move DatensatzID, adBookmarkFirst
    
    Response.Write(rs.fields("TestID").value & "<br>")
    
    rs.close
    set rs = nothing
End Sub



Public Function GetZufallszahl(ByVal Untergrenze, ByVal Obergrenze)
    dim Zufallszahl
    Zufallszahl = Int(rnd - 854545)
    Randomize
    GetZufallszahl = Int((Obergrenze - Untergrenze + 1) * Rnd + Untergrenze)
End Function


Diese Version ist einfach einzusetzen und benötigt keine Änderung in der Datenbank. Der Nachteil ist, daß man zum einen alle Datensätze aus der Datenbank lesen muss und zum anderen ist die Performance auch nicht optimal.



 << Zum vorherigen Tipp 92:
Excel-Datei per ADO auslesen

 Zum nächsten Tipp 94 >>
Anfangsbuchstaben groß schreiben

top top
© Copyright By Klaus Keller, 2001-2008 - Alle Rechte vorbehalten.