C. Les requêtes sélection
Ces requêtes permettent de visualiser dans l'ordre désiré les données issues d'une ou plusieurs tables en mode "feuille de données".
ELLES PERMETTENT DE
visualiser ou modifier des parties de tables pour des champs spécifiques
sélectionner les enregistrements sur lesquels on veut agir
trier des enregistrements
interroger plusieurs tables et regrouper les données sur une seule feuille
effectuer des calculs sur des données
utiliser d'autres requêtes si les calculs sont complexes
générer des graphiques
Les requêtes de sélection permettent d'extraire d'une ou plusieurs tables les enregistrements correspondant aux critères définis dans la requête.
La requête de sélection est préalable à tout autre type de requête et permet de s'assurer que les enregistrements qui vont être ajoutés, modifiés ou supprimés sont bien ceux que l'on souhaite |
1. MODES D'AFFICHAGE DES REQUÊTES
La requête est créée en mode "création" ; son résultat s'affiche en mode "feuille de données".
Feuille de données : les informations de la table sont affichées sous forme d'une feuille très semblable à une feuille de travail Excel. Dans ce mode, les données peuvent être affichées et manipulées
Sql : Le code Sql correspondant à la requête est affiché et peut être modifié directement si l'on connaît ce langage
Création : c'est le mode de création et/ou de modification de la structure de la requête.
|
bouton gauche dérouler les objets "requêtes" du volet de navigation |
bouton droit dérouler les objets " requêtes " du volet de navigation |
2. ASSISTANT
C'est un moyen pratique et simple de construire une requête étape par étape, surtout lorsque l'on débute.
|
onglet "créer" <clic g> sur |
|
bouton gauche 1 - sélectionner la table |
|
À partir de la table "employés" de la base "Northwind 2013" |
3. MODE CREATION
La création de la requête sans assistant est à peine plus compliquée.
|
<clic g> sur |
La liste des tables peut être affichée à tout moment.
|
onglet "créer" (le dernier) <clic g> sur |
4. EXÉCUTION
Exécuter une requête, c'est afficher son résultat en mode "feuille de données".
Trois possibilités
<clic g> sur en bas et à droite de la fenêtre
<clic g> sur onglet "accueil" groupe "affichage" (1er bloc) du ruban pour passer alternativement du mode "création" au mode "feuille de données" (ou dérouler avec puis choisir )
<clic g> sur onglet "créer"(dernier onglet) groupe "résultats" (1er bloc) du ruban en mode "création"
5. ENREGISTREMENTS
Access demande à la fermeture de l'onglet ou de la base d'enregistrer la requête, ce à quoi il faut répondre "oui" et la nommer. Néanmoins, il est plus prudent de le faire dès que la requête est un peu avancée, puis régulièrement si elle est complexe.
|
bouton droit <clic d> sur l'onglet de la requête |
onglet de la requête activé |
|
La première fois qu'on l'enregistre, il faut donner un nom à la requête; une fois fermée, un <clic droit> sur son nom affiche un menu contextuel permettant de la renommer. |
|
Les données n'ont pas besoin d'être enregistrées et sont mises à jour en temps réel alors que les éléments de structure doivent être enregistrés pour que les modifications apportées soient conservées |
6. CHAMPS
La requête est affichée en mode création.
a) INSERTION DES CHAMPS
Il faut indiquer quels champs de la ou des tables sélectionnées font l'objet de la requête.
|
bouton gauche |
|
Dans la base en cours "Northwind 2013", créer une nouvelle requête à partir de la table "employés" |
b) SELECTION DES CHAMPS
Il est aussi possible de prendre tous les champs en une seule fois globalement.
|
bouton gauche |
Il peut être utile de prendre tous les champs en une seule fois mais en les faisant figurer individuellement dans la requête.
|
bouton gauche |
|
Plusieurs champs de la liste déroulante peuvent être ajoutés simultanément, en maintenant la touche <ctrl> enfoncée pendant la sélection. |
c) ORDRE DES CHAMPS
Pour rendre la requête plus lisible, l'ordre d'affichage des champs gagne à être déterminé dès la création de la requête.
|
bouton gauche |
Les champs peuvent être déplacés pour être dans un ordre logique de lecture des données.
|
bouton gauche |
|
Dans la requête en cours "Employés requete1" de la base en cours "northwind 2013 |
d) SUPPRESSION DES CHAMPS
Les champs insérés par erreur dans la requête sont aisés à enlever.
|
sélectionner le ou les champs |
onglet "créer" (le dernier) sélectionner le ou les champs (ou simplement <clic g> dans le champ) |
|
Dans la requête en cours "Employés requete1" de la base en cours "Northwind 2013" |
e) CHANGER UN NOM DANS LA REQUÊTE
Afin d'améliorer la lecture de la feuille de données, il est possible de modifier les noms des champs affichés (Les noms d'origine demeurent intacts dans leurs tables respectives).
|
bouton gauche |
|
Dans la requête en cours "Employés requete1" de la base en cours "Northwind 2013" |
|
Si un champ utilisé dans la requête possède une légende définie dans la table (propriété de champ), la légende s'affiche au lieu de l'étiquette et malgré la requête Penser alors si nécessaire à aller mettre une légende directement dans les propriétés du champ de la requête |
|
Pour afficher une colonne vide avec un titre pour remplissage manuel ultérieur, il suffit de créer une nouvelle colonne avec le nom souhaité suivi de ": Null" |
f) CHAMPS CONCATÉNÉS
Un nouveau nom peut être calculé à partir de plusieurs champs ; il faut alors utiliser l'opérateur de concaténation symbolisé par le signe "&" (chiffre 1 du pavé alphabétique) ou le symbole "+" (touche +) et encadrer chaque nom de champ de crochets [ ].
Pour que les 2 champs ne soient pas collés, il est souvent nécessaire de les séparer par un espace qui doit, dans la formule, être entre guillemets " ".
|
Pour afficher le nom complet de l'employé, la formule à utiliser est la suivante : |
|
Les noms de champ peuvent être difficiles à orthographier ou peuvent ne pas être ce qu'ils paraissent (espace avant ou après inclus - par erreur ? - dans le nom : voir champ "nom") ; Ne pas hésiter à faire des copier/coller des noms de champ si un problème se pose. |
|
Un <double clic> avec la forme sur le bord droit en haut d'un champ sélectionné ajuste la largeur de la colonne de champ aux données contenues |
|
Dans la requête en cours "Employés requete1" de la base en cours "northwind 2013" |
|
Il faut éviter d'utiliser les noms réservés par Access (champs nommés "Nom", "Note", …) |
g) AFFICHER / NE PAS AFFICHER UN CHAMP
On peut désirer ne pas afficher dans la feuille de données un champ inclus dans la requête.
|
bouton gauche |
|
Dans la requête en cours "Employés requete1" de la base en cours "Northwind 2013" |
7. TRI SUR UN CHAMP
Pour visualiser des informations dans un ordre précis, il faut indiquer en mode création l'ordre d'affichage des données.
|
bouton gauche <clic g> sur à l'intersection de la ligne de tri et de la colonne du champ de tri |
|
Dans la requête en cours "Employés requete1" de la base en cours "Northwind 2013" |
Le tri sur plusieurs champs obéit à la même logique ; seule contrainte, mettre les champs de tri dans l'ordre.
|
bouton gauche |
|
Dans la requête en cours "Employés requete1" de la base en cours "Northwind 2013" |
|
Il est impossible d'effectuer un tri sur certains types de champ (mémo, Ole, …) |
|
Pour afficher des données dans un ordre différent du critère de tri, il faut d'abord mettre les champs du critère de tri avec leur type de tri mais non affichés puis les champs dans l'ordre d'affichage (ce qui amène à mettre 2 fois les champs servant au tri à 2 endroits différents)
|
8. CRITÈRES DE SÉLECTION
Pour obtenir les données que l'on souhaite, il faut définir des critères de sélection ; ils sont élaborés avec des opérateurs de comparaison (=, Comme, Entre, …) et combinés à l'aide d'opérateurs logiques (Et, Ou, Pas, …).
Les principaux opérateurs de comparaison des données sont : = (égal), Comme, Entre, < (inférieur), > (supérieur), <> (différent), …
Les principaux opérateurs logiques sont : Et, Ou, Pas, … Ils peuvent être combinés entre eux de manière explicite (au sein d'une même colonne) ou implicite (sur des colonnes ou des lignes différentes)
a) = (ÉGAL)
|
bouton gauche clavier |
|
si le critère est de type "texte", Access l'encadre d'apostrophes ; s'il est de type "date", il est encadré de dièses et s'il est de type "numérique", il est affiché tel quel |
|
Pour sélectionner uniquement les enregistrements correspondant au critère Ville=Cherbourg, la saisie peut s'effectuer de plusieurs manières (casse indifférente) :
|
|
Dans la requête en cours "Employés requete1" de la base en cours "Northwind 2013" |
|
Pour rechercher une valeur précise existante, faire un copier/coller à partir de la feuille de données |
b) COMME "…"
|
bouton gauche clavier |
CARACTÈRES GÉNÉRIQUES
?Remplace un caractère unique à son emplacement
*Remplace un ou plusieurs caractères
#Remplace un chiffre unique à son emplacement
[ ]Remplace une liste de caractères
[! ]Remplace une liste de caractères à exclure
|
ch?rCherbourg |
#ème3ème ou 4ème … |
|
Tester les cas de figure cités dans l'exemple ci-dessus |
c) ENTRE VAL1 ET VAL2
|
bouton gauche clavier |
|
La requête ci-dessous affiche les employés habitant une ville dont le code postal est compris entre 73000 et 74000 (limites comprises) |
|
Dans la requête en cours "Employés requete1" de la base en cours "Northwind 2013" |
d) EST NULL - EST PAS NULL
|
bouton gauche clavier |
|
La requête ci-dessous affiche les employés dont le champ "Notes" ne contient aucune information |
|
Dans la base en cours "Northwind 2013", créer une nouvelle requête telle que ci-essus (sans fermer la précédente) |
|
Ce critère peut être utilisé pour tous les types de champs |
e) "ET"
Lorsque deux critères sont sur une même ligne, les enregistrements doivent satisfaire à la fois chacun des critères.
|
La requête ci-dessous affiche les employés habitant Cherbourg ayant pour fonction "représentant commercial" |
|
Dans la requête en cours "Employés requete1" de la base en cours "Northwind 2013" |
"et" peut aussi être utilisé au sein d'une même colonne.
|
La requête ci-dessous affiche les employés habitant une ville dont le code postal est compris entre 60000 et 74000 (bornes non comprises) |
|
Dans la requête en cours "Employés requete1" de la base en cours "Northwind 2013" |
f) "OU"
Lorsque deux critères sont sur des lignes différentes, il est créé un premier groupe d'enregistrements correspondant au premier critère auquel s'ajoute un deuxième groupe d'enregistrements satisfaisant au deuxième critère.
|
La requête ci-dessous affiche les employés habitant Cherbourg ainsi que les employés ayant pour fonction "représentant commercial" (quelle que soit leur ville) |
|
Dans la requête en cours "Employés requete1" de la base en cours "northwind 2013" |
"ou" peut aussi être utilisé au sein d'une même colonne.
|
La requête ci-dessous affiche les employés habitant Cherbourg ou Colmar ainsi que les employés ayant pour fonction "représentant commercial" |
|
Dans la requête en cours "Employés requete1" de la base en cours "Northwind 2013" |
g) "ET" et "OU"
Lorsqu'il y a des critères à la fois sur une même ligne et sur des lignes différentes, il est formé autant de groupes d'enregistrements que de lignes de critères.
|
La requête ci-dessous affiche les employés habitant Cherbourg quelle que soit leur fonction et ceux habitant Colmar ayant pour fonction "représentant commercial" |
|
Dans la requête en cours "Employés requete1" de la base en cours "Northwind 2013" |
h) "ET" et " OU " DANS PLUSIEURS CHAMPS DE CRITÈRE
Tous ces critères peuvent être combinés pour obtenir le résultat voulu.
|
La requête ci-dessous affiche les employés habitant une ville dont le code postal est strictement supérieur à 60000 et inférieur ou égal à 74000, exerçant la profession de "représentant commercial" ou de "Vice-président des ventes" quelle que soit leur ville ainsi que les employés exerçant la profession de "représentant commercial" habitant Cherbourg |
|
Dans la requête en cours "Employés requete1" de la base en cours "Northwind 2013" |
9. CALCULS ET REGROUPEMENTS
Les requêtes permettent d'effectuer des calculs à partir de tous les enregistrements ou de regroupements spécifiques de ces mêmes enregistrements.
a) CALCULS
Les requêtes permettent de créer des "champs calculés" (qui n'ont d'existence qu'au sein de la requête) pour effectuer des calculs.
Pour ces calculs peuvent être utilisés les opérateurs arithmétiques classiques + (addition), - (soustraction), * (multiplication), / (division réelle), \ (division entière), … et les fonctions intégrées d'Access Année(), Mois(), Jour(), Maintenant(), …
|
À partir de la table "Commandes", il est possible de calculer les délais de livraison en soustrayant la date d'expédition à la date de commande |
|
Dans la base en cours "Northwind 2013" |
…
|
Une valeur peut être complétée d'une unité (ou de n'importe quel texte) en utilisant l'opérateur de concaténation de chaînes de caractères : "&" |
|
Dans la requête en cours "Commandes Délais de livraison" de la base en cours "Northwind 2013" |
…
|
Le résultat est aligné à gauche car ce n'est plus une valeur numérique mais le résultat d'une concaténation, donc une chaine de caractères |
b) OPERATIONS
Cette fonctionnalité permet de faire des calculs sur un champ. Selon la nature du champ, ce peut être une somme, une moyenne ou le nombre des enregistrements.
|
onglet "créer" (le dernier) <clic g> sur (idem pour l'enlever - le menu contextuel propose le même outil) |
Pour effectuer un calcul sur la totalité des enregistrements, ne pas laisser de regroupement et préciser l'opération pour chaque champ concerné.
|
Créer une nouvelle requête à partir de la table "commandes" dans la base en cours "Northwind 2013" |
|
Pour faire plusieurs calculs sur un même champ, il faut le répéter pour chaque calcul |
c) REGROUPEMENTS
Pour effectuer une opération sur un groupe d'enregistrements, il faut laisser "regroupement" dans le(s) champ(s) identifiant le groupe d'enregistrements.
|
bouton gauche clavier |
|
Pour calculer le total des frais d'expédition par client et par ville, il faut laisser "regroupement" dans les champs "Ville d'expédition", "Réf client" et "Nom d'expédition" et préciser la fonction "Somme" en tant qu'opération dans le champ "Frais d'expédition" |
|
Dans la base en cours "Northwind 2013", |
…
|
Des en-têtes reprenant les types d'opérations apparaissent par défaut dans la feuille de données. Il est préférable de les renommer ou de mettre une légende au niveau des propriétés du champ |
Des critères peuvent être appliqués au regroupement.
|
bouton gauche clavier |
|
Dans la requête en cours "Commandes Frais expédition" de la base "Northwind 2013" |
Il est également possible de réaliser des calculs sur des groupes construits à partir d'expressions, et éventuellement d'y associer des critères de sélection.
|
|
Dans la base en cours "Northwind 2013", |
|
Bien évaluer la pertinence des résultats : les requêtes sous Access fournissent quasiment toujours un résultat mais, si la requête est mal formulée, ce résultat peut être incohérent (notamment la fonction "compte" qui compte simplement le nombre d'enregistrements du groupe) |
d) CRITÈRES MULTITABLES
Pour obtenir les informations désirées, il est souvent nécessaire d'utiliser plusieurs tables. Les principes restent les mêmes et les liaisons d'origine entre les tables sont automatiquement reprises dans la requête.
|
Pour obtenir la liste des commandes clients pour la période du 10 Avril 2006 au 25 Avril 2006, il faut afficher les tables "Clients "et "Commandes" (la relation entre les 2 s'affiche sous forme d'un lien : ) |
|
Dans la base en cours "Northwind 2013", |
|
Bien vérifier que les liens entre les tables sont présents pour que le résultat généré soit cohérent. |
10. GÉNÉRATEUR D'EXPRESSION
Le générateur d'expression affiche dans une fenêtre spécifique les critères avec les opérateurs, fonctions et opérandes (opérateurs arithmétiques, opérateurs logiques, objets de la base, champ des tables et requêtes, fonctions par type, …).
|
onglet "créer" (le dernier) <clic g> à l'intersection de la ligne de critères et du champ concerné |
EXEMPLE DE FONCTIONS D'AGRÉGATION (regroupement Sql)
Somme |
Calcule la somme des valeurs d'un champ (numérique) |
|
||
Moyenne |
Calcule la moyenne des valeurs d'un champ (numérique) |
|
||
Min |
Détermine la plus petite valeur d'un champ (sauf mémo, Ole…) |
|
||
Max |
Détermine la plus grande valeur d'un champ (sauf mémo, Ole…) |
|
||
Compte |
Calcule le nombre de valeurs non nulles (null) d'un champ (sauf mémo, Ole…) |
|
||
Ecartype |
Calcule l'écart type des valeurs d'un champ (numérique) |
|
||
Var |
Calcule la variance des valeurs d'un champ (numérique) |
|
||
Premier |
Donne la 1ère valeur d'un champ pour les critères demandés (sauf mémo, Ole…) |
|
||
Dernier |
Donne la dernière valeur d'un champ pour les critères demandés (sauf mémo, Ole…) |
|
||
|
|
Pour calculer par produit les prévisions de ventes en €, il faut créer une nouvelle requête à partir de la table "produits". |
||
|
|
|
Dans la base en cours "Northwind 2013", |
…
|
L'utilisation de champs calculés pour un autre calcul dans une même requête est déconseillée pour des calculs complexes – Réutiliser le calcul même au lieu de sa désignation |
11. PROPRIÉTÉS
Les propriétés de la requête affichent diverses informations utiles la concernant.
|
afficher la requête en mode "création" |
onglet "créer" (le dernier) afficher la requête en mode "création" |
|
cocher la case d'affichage du champ : |
PROPRIÉTÉS LES PLUS UTILES
Description |
Décrit la requête |
|
||
Tous les champs |
Affiche tous les champs de la ou des tables sélectionnée(s) |
|
||
Premières valeurs |
Nombre de premiers enregistrements sélectionnés ou pourcentage |
|
||
Valeurs distinctes |
Oui : Élimine les doublons |
|
||
Enr unique |
Oui : Conserve les doublons |
|
||
Filtre |
N'affiche que les enregistrements correspondant aux critères |
|
||
Tri par |
Trie les enregistrements dans l'ordre croissant ou décroissant du ou des champs |
|
||
Type Recordset |
Feuille de réponse dynamique : données modifiables |
|
||
|
|
Si la feuille de propriétés n'affiche plus qu'une ou deux informations, faire un <clic g> dans une zone vide du volet d'interrogation (volet inférieur) |
||
|
Si le "Type Recordset" est laissé sur "feuille de réponse dynamique" (option par défaut), les données résultantes de la requête sont modifiables (modification sur les tables d'origine) |
|
Dans la requête en cours "Produits valeur cible" de la base en cours "Northwind 2013" |