Recordset.Sort-Eigenschaft (DAO)
Gilt für: Access 2013, Office 2013
Legt die Sortierreihenfolge von Datensätzen in einem Recordset-Objekt fest oder gibt sie zurück (nur Microsoft Access-Arbeitsbereiche).
Syntax
expression .Sort
Ausdruck Eine Variable, die ein Recordset-Objekt darstellt.
Bemerkungen
Sie können die Sort-Eigenschaft mit Recordset-Objekten vom Typ „Dynaset“ und „Snapshot“ verwenden.
Wenn Sie diese Eigenschaft für ein Objekt festlegen, wird die Sortierung vorgenommen, wenn anhand dieses Objekts ein nachfolgendes Recordset-Objekt erstellt wird. Die Einstellung der Sort-Eigenschaft hat Vorrang vor allen für ein QueryDef -Objekt festgelegten Sortierreihenfolgen.
Standardmäßig ist die aufsteigende Sortierreihenfolge (A bis Z oder 0 bis 100) festgelegt.
Die Sort gilt nicht für Recordset-Objekte vom Typ „Tabelle“ oder „Nur weiterleiten“. Verwenden Sie zum Sortieren eines Recordset-Objekts vom Typ „Tabelle“ die Index-Eigenschaft.
Hinweis
In vielen Fällen ist geht schneller, ein neues Recordset-Objekt mithilfe einer SQL-Anweisung zu öffnen, die die Sortierkriterien enthält.
Beispiel
This example demonstrates the Sort property by changing its value and creating a new Recordset. Die SortOutput-Funktion ist zum Ausführen dieser Prozedur erforderlich.
Sub SortX()
Dim dbsNorthwind As Database
Dim rstEmployees As Recordset
Dim rstSortEmployees As Recordset
Set dbsNorthwind = OpenDatabase("Northwind.mdb")
Set rstEmployees = _
dbsNorthwind.OpenRecordset("Employees", _
dbOpenDynaset)
With rstEmployees
SortOutput "Original Recordset:", rstEmployees
.Sort = "LastName, FirstName"
' Print report showing Sort property and record order.
SortOutput _
"Recordset after changing Sort property:", _
rstEmployees
' Open new Recordset from current one.
Set rstSortEmployees = .OpenRecordset
' Print report showing Sort property and record order.
SortOutput "New Recordset:", rstSortEmployees
rstSortEmployees.Close
.Close
End With
dbsNorthwind.Close
End Sub
Function SortOutput(strTemp As String, _
rstTemp As Recordset)
With rstTemp
Debug.Print strTemp
Debug.Print " Sort = " & _
IIf(.Sort <> "", .Sort, "[Empty]")
.MoveFirst
' Enumerate Recordset.
Do While Not .EOF
Debug.Print " " & !LastName & _
", " & !FirstName
.MoveNext
Loop
End With
End Function
Wenn Sie die auszuwählenden Daten kennen, ist es in der Regel effizienter, ein Recordset mit einer SQL-Anweisung zu erstellen. Dieses Beispiel zeigt, wie Sie ein einzelnes Recordset-Objekt erstellen und dieselben Ergebnisse erhalten, wie im vorherigen Beispiel.
Sub SortX2()
Dim dbsNorthwind As Database
Dim rstEmployees As Recordset
Set dbsNorthwind = OpenDatabase("Northwind.mdb")
' Open a Recordset from an SQL statement that specifies a
' sort order.
Set rstEmployees = _
dbsNorthwind.OpenRecordset("SELECT * " & _
"FROM Employees ORDER BY LastName, FirstName", _
dbOpenDynaset)
dbsNorthwind.Close
End Sub