Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : Access 2013 | Access 2016
Trie, par ordre croissant ou décroissant, les enregistrements résultants d'une requête en fonction du ou des champs spécifiés.
Syntaxe
SELECT fieldlist FROM table WHERE selectcriteria [ORDER BY field1 [ASC | DESC ][, champ2 [ASC | DESC ]][, ...]]]
Une instruction SELECT contenant une clause ORDER BY est composée des arguments suivants :
| Partie | Description |
|---|---|
| fieldlist | Nom du ou des champs à extraire avec leurs alias de nom de champ, fonctions d’agrégation SQL, prédicats de sélection (ALL, DISTINCT, DISTINCTROW ou TOP) ou autres options d’instruction SELECT. |
| table | Nom de la table de laquelle des enregistrements sont extraits. Pour plus d’informations, voir la clause FROM. |
| selectcriteria | Critères de sélection. Si l’instruction contient une clause WHERE, le moteur de base de données Microsoft Access trie les valeurs après avoir appliqué les conditions de la clause WHERE aux enregistrements. |
| field1, field2 | Nom des champs en fonction desquels trier les enregistrements. |
Remarques
La clause ORDER BY est facultative. Toutefois, si vous voulez que vos données soient affichées dans un ordre de tri, vous devez utiliser la clause ORDER BY.
L'ordre de tri par défaut est croissant (de A à Z, de 0 à 9). Les deux exemples suivants trient les enregistrements d'employés en fonction de leur nom :
SELECT LastName, FirstName
FROM Employees
ORDER BY LastName;
SELECT LastName, FirstName
FROM Employees
ORDER BY LastName ASC;
Pour trier par ordre décroissant (de Z à A, de 9 à 0), ajoutez le mot réservé DESC à la fin de chaque champ que vous voulez trier par ordre décroissant. L'exemple suivant sélectionne les salaires et les trie par ordre décroissant :
SELECT LastName, Salary
FROM Employees
ORDER BY Salary DESC, LastName;
Si vous spécifiez un champ contenant des données Memo ou objet OLE dans la clause ORDER BY, une erreur se produit. Le moteur de base de données Microsoft Jet ne trie pas sur les champs de ces types de données.
ORDER BY est généralement le dernier élément d'une instruction SQL.
Vous pouvez inclure des champs supplémentaires dans la clause ORDER BY. Les enregistrements sont triés tout d'abord en fonction du premier champ spécifié après ORDER BY. Ensuite, les enregistrements pour lesquels ce champ contient des valeurs identiques sont triés en fonction de la valeur du second champ spécifié, et ainsi de suite.
Exemple
L'instruction SQL qui figure dans l'exemple suivant utilise la clause ORDER BY pour trier les enregistrements selon le nom de famille en ordre décroissant (Z-A). Il appelle la procédure EnumFields que vous pouvez trouver dans l’exemple d’instruction SELECT.
Sub OrderByX()
Dim dbs As Database, rst As Recordset
' Modify this line to include the path to Northwind
' on your computer.
Set dbs = OpenDatabase("Northwind.mdb")
' Select the last name and first name values from
' the Employees table, and sort them in descending
' order.
Set rst = dbs.OpenRecordset("SELECT LastName, " _
& "FirstName FROM Employees " _
& "ORDER BY LastName DESC;")
' Populate the Recordset.
rst.MoveLast
' Call EnumFields to print recordset contents.
EnumFields rst, 12
dbs.Close
End Sub
À propos des collaborateurs
Lien fourni par l’icône
de la communauté UtterAccess .
UtterAccess est le forum d’aide et wiki de Microsoft Access de référence.
Voir aussi
- Forum Access pour les développeurs
- Aide Access sur support.office.com
- Forums Access sur UtterAccess
- Centre d'aide pour les développeurs Access et la programmation VBA (FMS)
- Billets sur Access sur StackOverflow
Assistance et commentaires
Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.