Freigeben über


Recordset.FindLast-Methode (DAO)

Gilt für: Access 2013, Office 2013

Locates the last record in a dynaset- or snapshot-type Recordset object that satisfies the specified criteria and makes that record the current record (Microsoft Access workspaces only).

Syntax

Ausdruck . FindLast(Criteria)

Ausdruck Eine Variable, die ein Recordset-Objekt darstellt.

Parameter

Name

Erforderlich/optional

Datentyp

Beschreibung

Kriterium

Erforderlich

String

Eine Zeichenfolge, die zum Suchen des Datensatzes verwendet wird. Entspricht der WHERE-Klausel in einer SQL-Anweisung, allerdings ohne das Wort "WHERE".

Hinweise

Wenn Sie alle Datensätze in die Suche einschließen möchten (nicht nur die, die eine bestimmte Bedingung erfüllen), verwenden Sie die Move-Methoden, um zwischen Datensätzen zu wechseln. To locate a record in a table-type Recordset, use the Seek method.

Wenn ein Datensatz, der die Bedingungen erfüllt, nicht gefunden wird, ist der aktuelle Datensatzverweis unbekannt und die NoMatch -Eigenschaft wird auf True festgelegt. Wenn das Recordset mehrere Datensätze enthält, die die Kriterien erfüllen, sucht FindFirst das erste Auftreten, FindNext sucht das nächste Auftreten usw.

Jede der Find-Methoden beginnt die Suche an der Position und in der Richtung, die in der folgenden Tabelle angegeben sind.

Find-Methode

Beginnt die Suche bei

Suchrichtung

FindFirst

Anfang des Recordsets

Ende des Recordsets

FindLast

Ende des Recordsets

Anfang des Recordsets

FindNext

Aktueller Datensatz

Ende des Recordsets

FindPrevious

Aktueller Datensatz

Anfang des Recordsets

Wenn Sie die FindLast-Methode verwenden, füllt das Microsoft Access-Datenbankmodul das Recordset vor der Suche vollständig auf, falls noch nicht geschehen.

Using one of the Find methods isn't the same as using a Move method, however, which simply makes the first, last, next, or previous record current without specifying a condition. You can follow a Find operation with a Move operation.

Always check the value of the NoMatch property to determine whether the Find operation has succeeded. If the search succeeds, NoMatch is False. Andernfalls ist NoMatch gleich True und der aktuelle Datensatz wird nicht definiert. In diesem Fall müssen Sie den aktuellen Datensatzzeiger zurück auf einen gültigen Datensatz richten.

Das Verwenden der Find-Methoden kann für Datensätze, auf die über mit dem Microsoft Access-Datenbankmodul verbundene ODBC-Datenbanken zugegriffen wird, ineffizient sein. Das Neuformulieren der Kriterien zum Suchen eines bestimmten Datensatzes kann schneller sein, besonders, wenn Sie mit großen Recordsets arbeiten.

Wenn Sie mit ODBC-Zugriffsrecordsets, die mit dem Microsoft Access-Datenbankmodul verbunden sind, und großen Recordset -Objekten vom Typ "Dynaset" arbeiten, bemerken Sie möglicherweise, dass das Verwenden der Find -Methoden oder der Sort - oder Filter -Eigenschaft langsam ist. To improve performance, use SQL queries with customized ORDER BY or WHERE clauses, parameter queries, or QueryDef objects that retrieve specific indexed records.

Sie sollten das US-Datumsformat (Monat-Tag-Jahr) verwenden, wenn Sie nach Feldern suchen, die Datumsangaben enthalten, auch wenn Sie nicht die US-Version der Microsoft Access-Datenbank-Engine verwenden. Andernfalls werden die Daten möglicherweise nicht gefunden. Verwenden Sie die Visual Basic-Funktion Format , um das Datum zu konvertieren. Zum Beispiel:

    rstEmployees.FindFirst "HireDate > #" _ 
        & Format(mydate, 'm-d-yy' ) & "#" 

Wenn die Kriterien aus einer Zeichenfolge bestehen, die mit einem nicht ganzzahligen Wert verkettet ist, und die Systemparameter ein nicht für die USA gültiges Dezimalzeichen, z. B. ein Komma, angeben (Beispiel: strSQL = "PRICE > " & lngPrice und lngPrice = 125,50), tritt beim Versuch, die Methode aufzurufen, ein Fehler auf. Der Grund ist, dass die Zahl bei der Verkettung mithilfe des Standarddezimalzeichens des Systems in eine Zeichenfolge umgewandelt wird und Microsoft Access SQL nur für die USA gültige Dezimalzeichen akzeptiert.

Hinweis

Um die bestmögliche Leistung zu erzielen, sollten die Kriterien in der Form "Feld = Wert" vorliegen, wobei Feld ein indiziertes Feld in der zugrunde liegenden Basistabelle ist, oder in der Form "Feld LIKE Präfix", wobei Feld ein indiziertes Feld in der zugrunde liegenden Basistabelle und Präfix eine Präfixsuchzeichenfolge ist (z. B. "ART*"). Allgemein stellt die Seek-Methode für ähnliche Suchtypen eine bessere Leistung als die Find-Methoden bereit. Dabei wird angenommen, dass nur Tabellentyp-Recordset-Objekte Ihre Anforderungen erfüllen können.