Les requêtes de sélection
Interroger une ou plusieurs tables, filtrer avec des critères, poser une question à l’utilisateur, croiser les données et repérer les anomalies.
Les exemples utilisent une base Gestion commerciale avec trois tables : T_Clients (N°Client, Nom, Ville, DateInscription), T_Commandes (N°Commande, N°Client, DateCommande, MontantHT) et T_Produits.
Créer une requête de sélection sur une table
Pas à pas
- Onglet Créer › Création de requête.
- Dans le volet Ajouter des tables, double-cliquez sur T_Clients, puis fermez le volet.
- Double-cliquez sur les champs voulus pour les envoyer dans la grille de création. L’astérisque
*ajoute tous les champs d’un coup. - Réglez les lignes de la grille :
- Tri : Croissant ou Décroissant.
- Afficher : décochez un champ utilisé seulement comme critère.
- Critères : la condition à respecter, par exemple
"Arras".
- Enregistrez avec Ctrl + S et nommez la requête, par exemple R_Clients_Arras.
| Champ | Nom | Ville | DateInscription |
|---|---|---|---|
| Table | T_Clients | T_Clients | T_Clients |
| Tri | Croissant | ||
| Afficher | ☑ | ☑ | ☑ |
| Critères | « Arras » | ||
| Ou |
Grille de création : les clients d’Arras triés par nom.
Préfixez vos requêtes par R_ et vos tables par T_ : le volet de navigation reste lisible quand la base grossit.
Exécuter une requête
Pas à pas
- Depuis le mode Création : Création de requête › Exécuter (bouton point d’exclamation rouge).
- Depuis le volet de navigation : double-cliquez sur la requête.
- Pour revenir à la grille : Accueil › Affichage › Mode Création, ou clic droit sur l’onglet de la requête.
Une requête ne stocke pas de données : elle mémorise une question. À chaque exécution, Access relit les tables et affiche un résultat à jour.
Une modification saisie dans le résultat d’une requête de sélection est enregistrée dans la table d’origine. Consultez sans modifier, sauf si c’est voulu.
Créer une requête sur plusieurs tables
Pas à pas
- Créer › Création de requête, puis ajoutez T_Clients et T_Commandes.
- Vérifiez la ligne de jointure entre les deux tables sur N°Client. Si elle manque, faites glisser N°Client d’une table sur l’autre.
- Ajoutez Nom (T_Clients), puis DateCommande et MontantHT (T_Commandes).
- Exécutez : chaque ligne associe une commande au nom du client.
Type de jointure
Double-cliquez sur la ligne de jointure pour ouvrir Propriétés de la jointure :
| Option | Résultat |
|---|---|
| 1 — Jointure interne | Seulement les clients qui ont au moins une commande. |
| 2 — Tous les clients | Tous les clients, avec ou sans commande (jointure gauche). |
| 3 — Toutes les commandes | Toutes les commandes, même sans client correspondant. |
Deux tables sans jointure produisent un produit cartésien : chaque client est combiné avec chaque commande. 100 clients × 500 commandes = 50 000 lignes.
Utiliser des opérateurs pour un critère
| Opérateur | Exemple de critère | Sélectionne |
|---|---|---|
| = <> < > <= >= | >=1000 | Montants d’au moins 1 000 € |
| Entre … Et | Entre #01/01/2026# Et #31/03/2026# | Les commandes du 1er trimestre 2026 |
| Comme + joker * | Comme "Dup*" | Dupont, Dupuis, Duprez… |
| Comme + joker ? | Comme "Mar?in" | Martin, Marcin (un seul caractère) |
| Dans | Dans ("Arras";"Lille";"Lens") | Une des villes de la liste |
| Pas | Pas "Arras" | Toutes les villes sauf Arras |
| Est Null / Est Pas Null | Est Null | Les champs vides |
| Et / Ou | >500 Et <1000 | Entre 500 et 1 000 € exclus |
ET et OU dans la grille
- Critères sur la même ligne = condition ET : les deux doivent être vraies.
- Critères sur des lignes différentes (Critères, puis Ou) = condition OU : l’une suffit.
| Champ | Ville | MontantHT |
|---|---|---|
| Critères | « Arras » | >1000 |
| Ou | « Lille » |
Lecture : (Arras ET plus de 1 000 €) OU Lille, quel que soit le montant.
Champ calculé
Dans une cellule Champ vide, saisissez MontantTTC: [MontantHT]*1,2. Le texte avant les deux-points devient le nom de la colonne.
Pour une saisie longue, faites un clic droit dans la cellule puis Zoom (Maj + F2), ou Créer pour ouvrir le Générateur d’expressions.
Dans Access en français : dates entre dièses #jj/mm/aaaa#, textes entre guillemets, séparateur de liste ; et virgule décimale.
Définir les propriétés d’une requête
Pas à pas
- En mode Création, ouvrez la Feuille de propriétés : Création de requête › Feuille de propriétés (Alt + Entrée).
- Cliquez dans une zone vide au-dessus de la grille pour afficher les propriétés de la requête :
- Valeurs distinctes = Oui : supprime les lignes identiques.
- Premières valeurs : 5, 10 ou 25 % (à combiner avec un tri).
- Description : une note sur le rôle de la requête.
- Cliquez dans une colonne pour régler ses propriétés : Format (Monétaire, Date abrégée…), Légende (titre affiché).
Pour obtenir le « Top 5 » des commandes, triez MontantHT en Décroissant puis choisissez 5 dans Premières valeurs (aussi disponible dans le ruban, zone Retour).
Créer une requête sélection paramétrée
Pas à pas
- Dans la ligne Critères du champ Ville, saisissez le texte de la question entre crochets :
[Quelle ville ?]. - Exécutez : une boîte de dialogue affiche la question, l’utilisateur saisit Arras.
- Enregistrez la requête : elle resservira pour toutes les villes.
| Besoin | Critère |
|---|---|
| Valeur exacte | [Quelle ville ?] |
| Période | Entre [Date de début ?] Et [Date de fin ?] |
| Mot contenu | Comme "*" & [Mot recherché ?] & "*" |
| Seuil | >=[Montant minimum ?] |
Le texte entre crochets ne doit pas être identique au nom d’un champ, sinon Access ne pose pas la question. Écrivez [Quelle ville ?] et non [Ville].
Pour les dates et les nombres, déclarez le type : Création de requête › Paramètres, recopiez le texte exact du paramètre et choisissez Date/Heure. Access refuse alors une saisie invalide.
Créer une requête d’analyse croisée
Avec l’assistant
- Créer › Assistant Requête › Assistant Requête analyse croisée.
- Choisissez la source. Pour croiser deux tables, créez d’abord une requête qui les réunit et choisissez-la ici.
- En-têtes de ligne (jusqu’à 3) : Nom du client.
- En-tête de colonne (1 seul) : DateCommande, regroupée par Trimestre ou par Mois.
- Valeur : MontantHT avec la fonction Somme. Laissez cochée la ligne de totaux.
- Nommez la requête et cliquez sur Terminer.
| Nom | Total | Trim 1 | Trim 2 | Trim 3 |
|---|---|---|---|---|
| Dupont | 4 250 € | 1 200 € | 1 850 € | 1 200 € |
| Lefebvre | 2 900 € | 2 900 € | ||
| Martin | 3 100 € | 800 € | 1 100 € | 1 200 € |
Exemple de résultat (données fictives).
En mode Création, le bouton Création de requête › Analyse croisée ajoute les lignes Opération et Analyse. Chaque champ y reçoit un rôle : En-tête de ligne, En-tête de colonne ou Valeur.
Créer une requête de non-correspondance
Avec l’assistant
- Créer › Assistant Requête › Assistant Requête de non-correspondance.
- Première table : celle dont on veut la liste, T_Clients.
- Deuxième table : celle où chercher la correspondance, T_Commandes.
- Champ commun : N°Client dans les deux tables.
- Choisissez les champs à afficher (Nom, Ville), nommez la requête, Terminer.
L’assistant crée une jointure gauche (option 2, tous les clients) avec le critère Est Null sur N°Client de T_Commandes. Vous pouvez la construire vous-même en mode Création.
Créer une requête pour trouver les doublons
Avec l’assistant
- Créer › Assistant Requête › Assistant Requête trouver les doublons.
- Choisissez la table : T_Clients.
- Champs à comparer : Nom et Ville. Deux lignes sont des doublons si toutes ces valeurs sont identiques.
- Champs supplémentaires à afficher : N°Client et DateInscription, pour savoir quelle fiche garder.
- Nommez la requête et cliquez sur Terminer.
Avant de supprimer un doublon, vérifiez qu’il n’est pas lié à des commandes. Rattachez d’abord les commandes à la fiche conservée, sinon vous perdez l’historique.
Comparez sur plusieurs champs : deux « Martin » peuvent être deux personnes différentes, deux « Martin » à la même adresse beaucoup moins.
Récapitulatif
| Besoin | Outil |
|---|---|
| Filtrer une table | Créer › Création de requête |
| Voir le résultat | Exécuter (!) ou double-clic dans le volet |
| Combiner plusieurs tables | Ajouter les tables + jointure sur le champ commun |
| Condition ET / OU | Même ligne / lignes Critères et Ou |
| Sans doublons, Top N | Feuille de propriétés : Valeurs distinctes, Premières valeurs |
| Question à l’utilisateur | [Texte de la question ?] dans Critères |
| Tableau à double entrée | Assistant Requête analyse croisée |
| Enregistrements orphelins | Assistant Requête de non-correspondance |
| Saisies en double | Assistant Requête trouver les doublons |
Exercice 1 : les clients lillois
Créez R_Clients_Lille : Nom, Ville et DateInscription des clients de Lille, triés par nom.
Afficher le corrigé
- Créer › Création de requête › ajouter T_Clients.
- Ajouter Nom, Ville, DateInscription. Tri Croissant sur Nom.
- Critères de Ville :
"Lille". Exécuter, puis Ctrl + S.
Exercice 2 : grosses commandes du trimestre
Créez R_Grosses_Commandes_T1 : Nom du client, DateCommande, MontantHT et MontantTTC des commandes de plus de 1 000 € HT passées au 1er trimestre 2026.
Afficher le corrigé
- Ajouter T_Clients et T_Commandes, vérifier la jointure sur N°Client.
- Champs : Nom, DateCommande, MontantHT, puis
MontantTTC: [MontantHT]*1,2. - Sur la même ligne Critères : DateCommande
Entre #01/01/2026# Et #31/03/2026#et MontantHT>1000.
Exercice 3 : contrôle qualité du fichier clients
Produisez trois requêtes : les clients sans commande, les doublons sur Nom + Ville, et une requête paramétrée qui demande une période puis affiche les commandes correspondantes.
Afficher le corrigé
- Assistant de non-correspondance : T_Clients, puis T_Commandes, champ commun N°Client.
- Assistant trouver les doublons : T_Clients, champs Nom et Ville, afficher aussi N°Client.
- Requête sur T_Commandes, critère DateCommande :
Entre [Date de début ?] Et [Date de fin ?], paramètres déclarés en Date/Heure.