Partager via


ORDER BY clause (Microsoft Access SQL)

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ônede membre de la communauté UtterAccess .

UtterAccess est le forum d’aide et wiki de Microsoft Access de référence.

Voir aussi

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.