Guide
Créer une requête Access sans écrire de SQL
Requête Sélection, critères, paramètres et totaux dans Access, sans SQL, et pourquoi une requête d'action ne se lance qu'avec une sauvegarde.
Mis à jour le
Dans Access, une requête Sélection répond à une question sur vos tables sans que vous écriviez de SQL (langage de requête structuré) : vous choisissez les tables et les champs, vous écrivez vos filtres dans une grille, et Access fait le reste. L'aide Microsoft décrit deux chemins, l'Assistant Requête et le mode Création. Et elle donne un avertissement à retenir : les requêtes d'action, qui modifient les données, ne peuvent pas être annulées.
Chemin 1 : l'Assistant Requête simple
Le plus guidé, d'après l'aide Microsoft :
- Onglet Créer, groupe Requêtes, Assistant Requête, puis Assistant Requête simple et OK.
- Pour chaque champ voulu, choisissez la table source et ajoutez le champ. Puis Suivant.
- S'il y a des champs numériques, choisissez Détail (chaque enregistrement) ou Résumé (somme, moyenne, minimum, maximum, via Options de synthèse).
- S'il y a un champ de date, choisissez comment regrouper les dates.
- Donnez un titre à la requête et cliquez sur Terminer.
Chemin 2 : le mode Création
Plus souple, et c'est là qu'on écrit des filtres :
- Onglet Créer, groupe Requêtes, Création de requête.
- Ajoutez les tables. Si des relations existent déjà entre elles, Access crée les jointures automatiquement. Pour en modifier une, double-cliquez dessus et réglez-la dans Propriétés de la jointure.
- Faites glisser les champs dans la ligne Champ de la grille.
- Écrivez vos filtres dans la ligne Critères, et dans la ligne Ou pour une alternative. Pour filtrer sur un champ sans l'afficher, décochez Afficher.
- Cliquez sur Exécuter : le résultat s'affiche en mode Feuille de données.
Un exemple illustratif
Prenons une base avec une table Clients et une table Commandes, reliées par le numéro de client. Question : « Quelles commandes nos clients de Bayonne ont-ils passées ? »
| Ligne de la grille | Clients.Nom | Clients.Ville | Commandes.DateCommande | Commandes.MontantHT |
|---|---|---|---|---|
| Afficher | oui | non | oui | oui |
| Critères | "Bayonne" |
La ville sert de filtre sans s'afficher. À vérifier avant de croire le résultat : la jointure entre les deux tables (double-cliquez dessus pour voir, dans Propriétés de la jointure, quels enregistrements elle garde), et l'orthographe exacte de la ville dans vos données. Pour choisir la ville à chaque fois, remplacez "Bayonne" par une question entre crochets : c'est la requête Paramètre, décrite plus bas.
Trois autres types de requêtes utiles
L'aide Microsoft décrit aussi :
- la requête Paramètre : une question entre crochets dans la ligne Critères, par exemple
[Pour quelle ville ?], fait demander la valeur à chaque exécution. Le point et le point d'exclamation sont interdits dans cette question. C'est l'outil idéal pour une requête préparée que l'équipe réutilise ; - la requête Opérations : activez Totaux (groupe Afficher/Masquer), puis choisissez une fonction comme la somme dans la ligne Total. C'est l'équivalent d'un « total par client » ;
- l'Analyse croisée : les données de synthèse présentées en lignes et en colonnes, par exemple par produit et par mois.
Les requêtes d'action : à manier avec une sauvegarde
Access appelle « requêtes d'action » celles qui changent les données. L'aide Microsoft en décrit quatre :
| Type | Ce qu'il fait | Le piège |
|---|---|---|
| Création de table | Crée une table à partir des résultats | Si une table du même nom existe, Access la supprime |
| Ajout | Copie des enregistrements dans une table existante | Doublons si on la lance deux fois |
| Mise à jour | Modifie des valeurs | Toutes les lignes visées par les critères changent |
| Suppression | Supprime des enregistrements selon un critère | Un critère trop large supprime trop |
L'encadré « Important » de l'aide est sans ambiguïté : une requête d'action ne peut pas être annulée. Microsoft conseille de sauvegarder les tables concernées avant une mise à jour. Avant d'exécuter une requête Mise à jour, on peut prévisualiser les valeurs concernées en mode Feuille de données : faites-le systématiquement. Les mêmes risques existent en SQL ; voir repérer une requête qui supprime des données.
Bonnes habitudes
- Nommez vos requêtes clairement : « Commandes Bayonne depuis date », pas « Requête1 ».
- Comptez les lignes obtenues et comparez avec ce que vous attendiez.
- Gardez les requêtes Sélection et les requêtes d'action séparées, et signalez les secondes par leur nom.
- Partez d'une question dont vous connaissez la réponse pour valider une nouvelle requête.
Pour relire les requêtes que d'autres outils écrivent en SQL à votre place, voyez comprendre une requête SQL.
Questions fréquentes
Une requête Access modifie-t-elle mes données ?
Une requête Sélection, non : selon l'aide Microsoft, une requête ne stocke pas de données, elle affiche des données stockées dans des tables. Les requêtes d'action (création de table, ajout, mise à jour, suppression), elles, modifient les données.
Comment demander une valeur différente à chaque exécution ?
Avec une requête Paramètre : dans la ligne Critères, écrivez une question entre crochets, par exemple [Pour quelle ville ?]. Access demande la valeur à chaque exécution.
Peut-on annuler une requête de suppression dans Access ?
Non. L'aide Microsoft le dit dans un encadré : une requête d'action ne peut pas être annulée. Sauvegardez les tables concernées avant.
Sources
Pages consultées pour écrire cet article :