Warum noch ein Access-Buch?
Für wen ist das Buch?
Jetzt bestellen
+ direkter Download des eBooks!
Nur EUR 59,95!
Fehler gefunden?
Bitte melden!
Wünsche an das Buch?
Her damit!
Was denken die Leser über dieses Buch?
Lesen Sie aktuelle Rezensionen!
Kapitel des noch nicht veröffentlichten Buchs zum Downloaden, Probelesen und Kommentieren
Beispieldatenbanken
Zusätzliches Material

Das Buch im HTML-Format

Für unbestimmte Zeit bieten Addison-Wesley und André Minhorst den kompletten Inhalt des Buchs als Download an. Schauen Sie rein und informieren Sie sich über den Inhalt! Und wenn Ihnen das Buch nützlich erscheint und Sie glauben, dass Sie etwas gelernt haben oder durch das Gelesene sogar etwas Zeit und somit Geld bei Ihrer Arbeit einsparen konnten, können Sie sich ja beim Autor und beim Verlag revanchieren - beispielsweise durch den Kauf dieses Buchs.

Am schönsten wäre es natürlich, wenn Sie das Buch direkt hier bestellen - Sie erhalten das Buch dann direkt vom Verlag, und der Autor und Verlag haben dann noch mehr davon, als wenn Sie es anderswo kaufen.

Danke für Ihr Interesse!

9.7.10 Die Find-Methoden zum Suchen in Dynaset- und Snapshot-Recordsets

9.7.11 Alle Datensätze mit einem bestimmten Kriterium finden

Natürlich haben neben der FindFirst-Methode auch die anderen Methoden ihre Daseinsberechtigung. Die FindNext-Methode lässt sich gut mit der FindFirst-Methode kombinieren, wenn es um das Durchforsten der ganzen Datensatzgruppe nach dem gewünschten Kriterium geht. Dazu sucht man zunächst mit der FindFirst-Methode den ersten Treffer und steigt im Erfolgsfall in eine Do While-Schleife ein, in der die Informationen zum gesuchten Datensatz ausgegeben werden und mit der FindNext-Methode der nächste Treffer gesucht wird:

Public Sub SucheAlleMitFindNext()
    ...
    strKriterium = "Nachname = 'Minhorst'"
    rst.FindFirst strKriterium

    Do While Not rst.NoMatch
        Debug.Print rst!Vorname & " " & rst!Nachname
        rst.FindNext strKriterium
    Loop
    ...
End Sub

Listing 9.36: Suche aller Treffer in einem Recordset

Alternative: Vorheriges Filtern der Datensatzgruppe

Die obigen Beispiele liefern keinen Grund, warum man nicht direkt die dem Recordset zugrunde liegende Tabelle oder Abfrage mit einem Kriterium so einschränken sollte, dass das Recordset nur noch die gesuchten Datensätze enthält.

Auch im wirklichen Leben sollten Sie immer prüfen, ob datenrelevante Funktionalität nicht in eine Abfrage mit Parameter verlagert werden könnte. Diese ist wesentlich schneller als die entsprechende Suchmethode in einem Recordset-/Recordset2-Objekt. Die Ausgabe nach allen Datensätzen mit einem bestimmten Nachnamen gestaltet sich dann wie folgt:

Public Sub SucheMitSQLAbfrage()

    Dim db As DAO.Database
    Dim qdf As DAO.QueryDef
    Dim rst As DAO.Recordset2
    Dim strName As String
    Dim prm As DAO.Parameter

    Set db = CurrentDb
    Set qdf = db.QueryDefs("qryMitarbeiter")
    Set prm = qdf.Parameters("Nachname eingeben")

    prm.Value = "Minhorst"

    Set rst = qdf.OpenRecordset(dbOpenDynaset)

    Do While Not rst.EOF
        Debug.Print rst!Vorname & " " & rst!Nachname
        rst.MoveNext
    Loop

    rst.Close

    Set qdf = Nothing
    Set prm = Nothing
    Set rst = Nothing
    Set db = Nothing

End Sub

Listing 9.37: Suche nach einem Datensatz per Parameterabfrage

Nächster Abschnitt:

9.7.12 Lesezeichen

© 2006-2008 André Minhorst Alle Rechte vorbehalten.