Partager via


Récupérer des enregistrements à l’aide d’Access SQL

L’instruction SQL la plus simple et la plus souvent utilisée est l’instruction SELECT . Les instructions SELECT sont les chevaux de travail de toutes les instructions SQL, et elles sont communément appelées requêtes select. Vous utilisez l’instruction SELECT pour récupérer des données à partir des tables de base de données, et les résultats sont généralement retournés dans un ensemble d’enregistrements (ou de lignes) constitués d’un nombre quelconque de champs (ou de colonnes). Vous devez utiliser la clause FROM pour désigner la ou les tables à sélectionner. La structure de base d’une instruction SELECT est la suivante :

SELECT field list  
    FROM table list

Pour sélectionner tous les champs d'une table, utilisez un astérisque (*). Par exemple, l'instruction suivante sélectionne tous les champs et tous les enregistrements de la table Clients.

SELECT * 
    FROM tblCustomers 

Pour limiter les champs extraits par la requête, utilisez plutôt les noms de champs. Par exemple :

SELECT [Last Name], Phone 
    FROM tblCustomers 

Pour désigner un autre nom pour un champ dans le jeu de résultats, utilisez le mot clé AS pour établir un alias pour ce champ.

SELECT CustomerID AS [Customer Number] 
    FROM tblCustomers 

Restreindre le jeu de résultats

Le plus souvent, vous ne souhaiterez pas récupérer tous les enregistrements d’une table. Vous ne souhaiterez qu’un sous-ensemble de ces enregistrements en fonction de certains critères éligibles. Pour qualifier une instruction SELECT , vous devez utiliser une clause WHERE , qui vous permet de spécifier exactement les enregistrements que vous souhaitez récupérer.

SELECT * 
    FROM tblInvoices 
    WHERE CustomerID = 1 

Tenez compte de la CustomerID = 1 partie de la clause WHERE . Une clause WHERE peut contenir jusqu'à 40 expressions de ce type, qu'il est possible de joindre à l'aide d'opérateurs logiques And ou Or. L'utilisation de plusieurs expressions permet de filtrer davantage les enregistrements se trouvant parmi les résultats.

SELECT * 
    FROM tblInvoices 
    WHERE CustomerID = 1 AND InvoiceDate > #01/01/98# 

La chaîne de date est placée entre des signes dièse (#). Si vous utilisez une chaîne normale dans une expression, vous devez entourer la chaîne de guillemets simples ('). Par exemple :

SELECT * 
    FROM tblCustomers 
    WHERE [Last Name] = 'White' 

Si vous ne connaissez pas la valeur de chaîne entière, vous pouvez utiliser des caractères génériques avec l’opérateur Like .

SELECT * 
    FROM tblCustomers 
    WHERE [Last Name] LIKE 'W*' 

Vous pouvez choisir parmi de nombreux de caractères génériques. Le tableau suivant répertorie leurs caractéristiques et leur utilisation.

Caractère générique Description
* Zéro, un ou plusieurs caractères
? Tout caractère isolé
# Tout chiffre isolé (0 à 9)
[ charlist ] Tout caractère isolé trouvé dans listecar
[! charlist ] Tout caractère isolé non trouvé dans listecar

Trier le jeu de résultats

Pour spécifier un ordre de tri particulier sur un ou plusieurs champs du jeu de résultats, utilisez la clause facultative ORDER BY . Les enregistrements peuvent être triés dans l’ordre croissant (ASC) ou l’ordre décroissant (DESC) ; le premier constitue la valeur par défaut.

Les champs référencés dans la clause ORDER BY n’ont pas besoin de faire partie de la liste de champs de l’instruction SELECT , et le tri peut être appliqué à des valeurs de chaîne, numériques et de date/heure. Placez toujours la clause ORDER BY à la fin de l’instruction SELECT .

SELECT * 
    FROM tblCustomers 
    ORDER BY [Last Name], [First Name] DESC 

Vous pouvez également utiliser les numéros de champ (ou les positions) à la place de noms de champ dans la clause ORDER BY.

SELECT * 
    FROM tblCustomers 
    ORDER BY 2, 3 DESC 

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.