Partager via


Propriété Recordset.Sort (DAO)

S’applique à : Access 2013, Office 2013

Définit ou renvoie l’ordre de tri des enregistrements d’un objet Recordset (espace de travail Microsoft Access uniquement).

Syntaxe

expression .Sort

expression Variable qui représente un objet Recordset.

Remarques

Vous pouvez utiliser la propriété Sort avec des objets Recordset de type instantané ou feuille de réponse dynamique.

Lorsque vous définissez cette propriété pour un objet, le tri est exécuté lorsqu'un autre objet Recordset est créé par la suite à partir de cet objet. Le paramètre de la propriété Sort remplace l'ordre de tri défini pour un objet QueryDef.

Par défaut, l'ordre de tri est croissant (A à Z ou 0 à 100).

La propriété Sort ne s’applique pas aux objets Recordset de type table ou transfert uniquement. Pour trier un objet Recordset de type table, utilisez la propriété Index.

Remarque

Dans la plupart des cas, il est plus rapide d’ouvrir un nouvel objet Recordset à l’aide d’une instruction SQL qui comprend les critères de tri.

Exemple

Cet exemple illustre la propriété Sort en modifiant sa valeur et en créant un nouvel objet Recordset. La fonction SortOutput est nécessaire à l'exécution de cette procédure.

    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 

Lorsque vous savez quelles données sélectionner, il est généralement plus efficace de créer un objet Recordset avec une instruction SQL. Cet exemple montre comment créer un seul objet Recordset et obtenir les mêmes résultats que dans l'exemple précédent.

    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