First, Last functions (Microsoft Access SQL)
Gilt für: Access 2013 | Access 2016
Gibt einen Feldwert aus dem ersten oder letzten Datensatz in dem Resultset zurück, das von einer Abfrage zurückgegeben wird.
Syntax
First( expr )
Last( expr )
Der Platzhalter expr stellt einen Zeichenfolgenausdruck dar, der das Feld identifiziert, das die daten enthält, die Sie verwenden möchten, oder einen Ausdruck, der eine Berechnung mit den Daten in diesem Feld ausführt. Operanden in Ausdr können den Namen eines Tabellenfelds, eine Konstante oder eine Funktion einschließen (wobei es sich entweder um eine systeminterne oder benutzerdefinierte Funktion handeln kann, jedoch nicht um eine der anderen SQL-Aggregatfunktionen).
Hinweise
Die Funktionen First und Last sind analog zu den MoveFirst - und MoveLast-Methoden eines DAO Recordset-Objekts. Sie geben einfach den Wert eines angegebenen Felds im ersten bzw. letzten Datensatz des Resultsets zurück, das von einer Abfrage zurückgegeben wird. Da Datensätze in der Regel in keiner bestimmten Reihenfolge zurückgegeben werden (es sei denn, die Abfrage enthält eine ORDER BY-Klausel ), sind die von diesen Funktionen zurückgegebenen Datensätze willkürlich.
Beispiel
Im folgenden Beispiel wird die Employees-Tabelle (Personal) verwendet, um die Werte aus dem LastName-Feld (Nachname) des ersten bzw. letzten Datensatzes zurückzugeben, der aus der Tabelle zurückgegeben wurde.
In diesem Beispiel wird die EnumFields-Prozedur aufgerufen, die im Beispiel für die SELECT-Anweisung enthalten ist.
Sub FirstLastX1()
Dim dbs As Database, rst As Recordset
' Modify this line to include the path to Northwind
' on your computer.
Set dbs = OpenDatabase("Northwind.mdb")
' Return the values from the LastName field of the
' first and last records returned from the table.
Set rst = dbs.OpenRecordset("SELECT " _
& "First(LastName) as First, " _
& "Last(LastName) as Last FROM Employees;")
' Populate the Recordset.
rst.MoveLast
' Call EnumFields to print the contents of the
' Recordset. Pass the Recordset object and desired
' field width.
EnumFields rst, 12
dbs.Close
End Sub
Im nächsten Beispiel wird unter Verwendung der Funktionen First und Last in Kombination mit den Funktionen Min und Max ein Vergleich durchgeführt, um anhand der Geburtsdaten die jüngsten und die ältesten Mitarbeiter zu ermitteln.
Sub FirstLastX2()
Dim dbs As Database, rst As Recordset
' Modify this line to include the path to Northwind
' on your computer.
Set dbs = OpenDatabase("Northwind.mdb")
' Find the earliest and latest birth dates of
' Employees.
Set rst = dbs.OpenRecordset("SELECT " _
& "First(BirthDate) as FirstBD, " _
& "Last(BirthDate) as LastBD FROM Employees;")
' Populate the Recordset.
rst.MoveLast
' Call EnumFields to print the contents of the
' Recordset. Pass the Recordset object and desired
' field width.
EnumFields rst, 12
Debug.Print
' Find the earliest and latest birth dates of
' Employees.
Set rst = dbs.OpenRecordset("SELECT " _
& "Min(BirthDate) as MinBD," _
& "Max(BirthDate) as MaxBD FROM Employees;")
' Populate the Recordset.
rst.MoveLast
' Call EnumFields to print the contents of the
' Recordset. Pass the Recordset object and desired
' field width.
EnumFields rst, 12
dbs.Close
End Sub
Informationen zu den Mitwirkenden
Die UtterAccess-Community ist das führende Microsoft Access-Wiki und -Hilfeforum.
Siehe auch
- Access-Entwicklerforum
- Hilfe mit Access unter support.office.com
- Hilfe mit Access unter answers.microsoft.com
- Access-Foren zu UtterAccess
- Entwickler- und VBA-Programmierung (FMS)
- Access-Beiträge zu StackOverflow
Support und Feedback
Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.