7. 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 2016"
Réaliser la requête ci-dessus à partir de la table "commandes"
L'enregistrer sous le nom "Commandes Délais de livraison


 


 


 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 2016"
Réaliser la requête ci-dessus (idem que précédemment mais avec l'unité "jour")
L'enregistrer puis la fermer





 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) OPÉRATIONS

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)
groupe "afficher/masquer"
(dernier bloc)
<clic g> sur  (idem pour l'enlever - le menu contextuel propose le même outil)
une ligne s'affiche en dessous de la ligne "table"

<clic g> sur cette ligne dans la colonne du champ souhaité
<clic g> sur   de

choisir
l'opération (fonction) parmi celles proposées
les opérations dépendent du type de champ



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 2016"
Insérer les champs "Réf commande", "Date de commande", "Date de commande" une 2ème fois et "frais d'expédition"
L'enregistrer sous le nom "Commandes Frais expédition regroupements"
Faire le calcul du nombre de commandes, de la date de la première et de la dernière commande et de la moyenne des frais d'expédition
Enregistrer et fermer la requête



 Pour faire plusieurs calculs sur un même champ, il faut le répéter pour chaque calcul
Bien nommer les champs en fonction de leur résultat soit par leur étiquette suivi de double-point, soit en utilisant la propriété "légende" du champ dans la requête


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
sur la ligne "opérations"
indiquer
regroupement dans la colonne du ou des champs servant de base aux calculs (
pour lequel un calcul sera effectué à chaque changement de valeur)

indiquer le type d'opération pour les autres champs (
compte, somme…)
afficher en mode "feuille de données"   


 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 2016",
Créer une nouvelle requête et réaliser l'exemple ci-dessus
L'Enregistrer sous le nom "Commandes Frais expédition"





 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
sur la ligne "critères", rajouter les critères voulus de la manière classique
afficher
en mode "feuille de données"



 Dans la requête en cours "Commandes  Frais expédition" de la base "Northwind 2016"
Calculer le total des frais d'expédition par client pour Chicago et Saumur lorsque ce total est différent de "0", enregistrer la requête sous le nom "Commandes Frais expédition chicagosaumur" puis la fermer


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.


 La fonction "Mois" détermine le mois d'une date (la fonction "Année" détermine l'année) et s'exprime sous la forme :


 Dans la base en cours "Northwind 2016",
Créer une nouvelle requête à partir de la table "Commandes"
Ajouter 2 fois le champ "Date d'expédition" puis calculer pour chaque mois de chaque année le total des frais d'expédition lorsque ce total est différent de 0 en utilisant les fonctions "Année()" et "Mois()"
L'enregistrer sous le nom " Commandes Frais expédition par an" puis la fermer



 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 2015 au 25 Avril 2015, 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 2016",
Créer une nouvelle requête à partir des tables "Clients" et "Commandes" comme ci-dessus
L'enregistrer sous le nom "Clients Commandes" et la fermer



 Bien vérifier que les liens entre les tables sont présents pour que le résultat généré soit cohérent.


e) DÉMONSTRATION - DIDACTICIEL - ENTRAÎNEMENTS


<clic g> sur "démonstration" et la suivre
la fermer
<clic g> sur "didacticiel" et  reproduire la démonstration en suivant les bulles d'aide 
la fermer

<clic g> sur "entrainement" et suivre les consignes de "description" ci-dessous

Modifié le: mardi 4 juin 2019, 10:17