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