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