9.7.9 Die Seek-Methode zum Suchen in Table-Recordsets
9.7.10 Die Find-Methoden zum Suchen in Dynaset- und Snapshot-Recordsets
In Dynaset- und Snapshot-Recordsets lässt sich die Seek-Methode nicht einsetzen. Dafür gibt es dort mehrere Suchmethoden, die zwar nicht so performant sind, aber durch flexiblere Einsetzbarkeit glänzen. Es gibt nämlich insgesamt vier Methoden zum Suchen in Recordsets: FindFirst, FindNext, FindPrevious und FindLast. Da diese Methoden sich nicht auf einen Index beziehen, geben Sie hier direkt den Namen des Feldes an, in dem gesucht werden soll. Der Feldname wird zusammen mit dem Vergleichsoperator und dem Vergleichswert in einem Ausdruck zusammengefasst und der entsprechenden Find...-Methode als Parameter mitgegeben. Die folgende Routine sucht nach dem ersten Datensatz, dessen Feld Nachname den Wert Minhorst enthält:
Public Sub SucheMitFindNext()
Dim db As DAO.Database Dim rst As DAO. Recordset2 Dim strKriterium As String
Set db = CurrentDb Set rst = db.OpenRecordset("tblMitarbeiter", dbOpenDynaset)
strKriterium = "Nachname = 'Minhorst'"
rst.FindFirst strKriterium
If Not rst.NoMatch Then Debug.Print rst!Vorname & " " & rst!Nachname
Else Debug.Print "Kein passender Datensatz gefunden." End If
rst.Close
Set rst = Nothing Set db = Nothing
End Sub
Listing 9.35: Suche nach einem Datensatz per FindNext-Methode
Auch hier müssen Sie unbedingt die NoMatch-Eigenschaft auswerten. Nur der Wert False weist auf eine erfolgreiche Suche hin, anderenfalls bleibt der Datensatzzeiger auf der aktuellen Position stehen.
Nächster Abschnitt:
9.7.11 Alle Datensätze mit einem bestimmten Kriterium
finden
|