L’instruction SELECT demande au moteur de base de données Microsoft Access de renvoyer des informations à partir de la base de données sous forme d’un jeu d’enregistrements.
Syntaxe
SELECT [predicate] { * | table.* | [table.]field1 [AS alias1] [, [table.]field2 [AS alias2] [, ...]]}
FROM tableexpression [, ...] [IN externaldatabase] [WHERE... ] [GROUP BY... ] [HAVING... ] [ORDER BY... ] [WITH OWNERACCESS OPTION]L’instruction SELECT est composée des éléments suivants :
Élément |
Description |
predicate |
L’un des prédicats suivants : ALL, DISTINCT, DISTINCTROW ou TOP. Le prédicat sert à limiter le nombre d’enregistrements renvoyés. Si aucun n’est spécifié, la valeur par défaut est ALL. |
* |
Spécifie que tous les champs des tables indiquées sont sélectionnés. |
table |
Nom de la table contenant les champs à partir desquels les enregistrements sont sélectionnés. |
field1, field2 |
Noms des champs contenant les données à récupérer. Si vous incluez plusieurs champs, ils sont récupérés dans l’ordre indiqué. |
alias1, alias2 |
Noms à utiliser comme en-têtes de colonne à la place des noms de colonne d’origine dans table. |
tableexpression |
Noms des tables contenant les données à récupérer. |
externaldatabase |
Nom de la base de données contenant les tables de tableexpression si elles ne sont pas dans la base de données active. |
Remarques
Pour effectuer cette opération, le moteur de base de données Microsoft Access recherche la ou les tables spécifiées, extrait les colonnes choisies, sélectionne les lignes qui remplissent les critères, et trie ou regroupe ces lignes dans l’ordre indiqué.
Les instructions SELECT ne modifient pas les données dans la base de données.
SELECT constitue généralement le premier mot d’une instruction SQL. La plupart des instructions SQL sont SELECT ou SELECT...INTO.
La syntaxe minimale d’une instruction SELECT est la suivante :
SELECT fields FROM table
Vous pouvez utiliser un astérisque (*) pour sélectionner tous les champs d’une table. L’exemple suivant sélectionne tous les champs de la table Employés :
SELECT * FROM Employees;
Si un nom de champ est inclus dans plusieurs tables dans la clause FROM, faites-le précéder du nom de la table et de l’opérateur . (point). Dans l’exemple suivant, le champ Département figure à la fois dans la table Employés et dans la table Responsables. L’instruction SQL sélectionne les départements dans la table Employés et le nom des responsables dans la table Responsables :
SELECT Employees.Department, Supervisors.SupvName FROM Employees INNER JOIN Supervisors WHERE Employees.Department = Supervisors.Department;
Lorsqu’un objet Recordset est créé, le moteur de base de données Microsoft Access utilise le nom de champ de la table comme nom d’objet Champ dans l’objet Recordset. Si vous préférez un autre nom de champ ou si un nom n’est pas implicite dans l’expression utilisée pour générer le champ, utilisez le mot réservé AS. L’exemple suivant utilise le titre Naissance pour nommer l’objet Champ renvoyé dans l’objet Recordset généré :
SELECT BirthDate AS Birth FROM Employees;
Chaque fois que vous utilisez des fonctions d’agrégation ou des requêtes qui renvoient des noms d’objet Champ ambigus ou dupliqués, vous devez utiliser la clause AS pour fournir un autre nom pour l’objet Champ. L’exemple suivant utilise le titre Effectif pour nommer l’objet Champ renvoyé dans l’objet Recordset généré :
SELECT COUNT(EmployeeID) AS HeadCount FROM Employees;
Vous pouvez utiliser les autres clauses d’une instruction SELECT pour limiter et organiser davantage les données renvoyées. Pour plus d’informations, consultez la rubrique d’aide relative à la clause que vous utilisez.