![]() |
|
|
|
|
||
Navigation |
Access: Les exercices sur les requêtes
Avant de commencerCette page consiste d'exercices pour vous aider à comprendre le potentiel des requêtes. Elle va vous aider à perfectionner vos connaissances sur les requêtes. Chaque exercice devient de plus en plus difficile. On présume que vous avez déjà lu et compris le fonctionnement des requêtes. Sinon, vous pouvez toujours aller à la page précédente qui explique le fonctionnement des requêtes. Pour réaliser les premières requêtes, il vous faut la table employés, de la base de données demoacc1.mdb si vous utilisez Access 97. Si vous avez Access 2000, utilisez la base de données demoa2k1.mdb. Ces fichiers sont sur la page des fichiers de démonstrations qui contient tous les fichiers utilisés durant mes démonstrations et les exercices de ce site. Cliquez ici pour vous rendre sur cette page pour ensuite revenir. Les dernières requêtes sont composées de plusieurs tables reliées. Pour celles-ci, il faut utiliser les bases de données demoacc2.mdb ou demoa2k2.mdb selon que vous utilisez Access 97 ou Access 2000 respectivement. Ils sont aussi sur la page des fichiers de démonstrations.
|
|
| Précédent Suivant Page Principale FAQ Nouveautés Plan du site |
||
| Contact | ||
| Par courriel Par formulaire Avisez un ami Abonnez-vous |
||
| Thèmes | ||
Access |
||
| Autres formations | ||
| Word |
||
| Autres | ||
| Références Motivations Documents PDF et Fichiers de démonstration Droits d'auteur Text in English |
||
| Référencement | ||
|
||
Les exercicesLa grande partie de la création d'une requête est d'être capable d'interpréter la question posée pour que les options d'une requête soient capables d'y répondre. Pour ce faire, il faut de la pratique. La partie qui suit est une série d'exercices pour démontrer quelques-unes des possibilités des requêtes. Ces exercices progressent en difficulté. Chacune démontre une nouvelle option possible avec les requêtes. Elles se basent sur les connaissances que vous avez lues de la page précédente ainsi que sur les exercices précédents. Pour chacune des questions, pensez à la manière dont vous répondriez avant de voir la réponse. Utilisez les étapes décrites à la page précédente pour choisir les tables, les champs et les autres options pour créer une requête qui répond à la question demandée. Ensuite exécuter la requête pour voir si votre réponse est la même que celle décrite plus bas. 1- Affichez le prénom et le nom des personnes ayant
pour prénom " roger ". 2- Affichez le prénom, nom de toutes les personnes
dont le nom de famille commence par la lettre " L ". 3- Affichez le prénom, nom et salaire des personnes
ayant un salaire supérieur à 45 000 $. 4- Affichez le prénom et le nom des personnes embauchées
en 1993. 5- Affichez le prénom et le nom des employés
ayant la permanence selon l'ordre alphabétique de nom de famille et de
prénom. 6- Affichez le prénom et le nom des employés nayant
pas la permanence. 7- En utilisant seulement le champ commentaire, affichez le prénom
et nom des gérants de lentreprise. 8- Affichez la commission du vendeur Gendron de Montréal. 9- Affichez le prénom, nom et occupation des vendeurs de
Montréal et de Québec. 10- Affichez le prénom, le nom et le revenu des employés
ayant un revenu supérieur ou égalà 45 000 $. 11- Affichez la commission de chacun des vendeurs si on leur
donne une augmentation de 20%. 12- Affichez le prénom et le nom des personnes embauché
en 1993 sans utiliser le critère ENTRE ou <=. 13- Affichez combien d'années de service a chaque employé
de l'entreprise. 14- Affichez à côté du prénom et du nom
des employés de l'entreprise le texte "champion" pour ceux qui
ont une commission de 45 000 $ ou plus. Placez le texte "Désolé"
à côte de ceux qui ne répondent pas au critère précédent. 15- Affichez la commission des vendeurs si on donnait une prime
de 5 000 $ à ceux ayant une commission de 45 000 $ ou plus. 16- Affichez la somme de la masse salariale de la compagnie. 17- Affichez la somme de la masse salariale de la compagnie
divisée par occupation. 18- Affichez la somme de la masse salariale de la compagnie
divisée par lieu de travail et par poste. 19- Affichez la masse salariale des employés embauchés
en 1993 repartit par lieu de travail. 20- Affichez le nombre de personnes pour l'entreprise par lieu
de travail et par occupation. 20a- Le piège de l'opération Compte. 21- Déterminez le nombre de vendeurs "champions"
ayant récolté une commission de 45 000 $ ou plus. 22- Utilisez une requête d'analyse croisée pour déterminer
la masse salariale de l'entreprise par occupation en colonne et par lieu de
travail en ligne. 23- Utilisez une requête d'analyse
croisée pour déterminer le nombre d'employés par statut social et lieu de travail ayant la permanence. 24- Changer le lieu de travail des employés de
Québec à Sillery. 25- Supprimer tous les employés dont le nom de
famille est Gendron. 26- Créez une requête qui affiche le prénom,
le nom et la date d'embauche des employés dont le choix de l'année
est laissé à l'utilisateur de la requête. Les prochaines requêtes requiert des champs qui se retrouvent dans plusieurs tables. Vous devrez utiliser la base de données demoacc2.mdb (pour Access 97) ou demoa2k2.mdb (pour Access 2000). Vous trouverez ces fichiers sur la page des fichiers des démonstrations. 27- Affichez le numéro de facture, nom et adresse du client ainsi que le prénom et nom du vendeur. 28- Affichez le nom de l'employé ainsi que le nombre des différents produits, avec description du produit, qu'il (ou elle) a vendu. 29- Affichez le total des ventes par clients. 30- Utilisez une requête pour entrer les données de factures. Réponses des requêtes 1- Affichez le prénom et le nom des personnes ayant pour prénom " roger ".Cette requête est pour commencer lentement avec une requête simple en utilisant du texte. Il s'agit de l'exemple développé de la page précédente. 1. Choisir la ou les tables et les requêtes nécessaires.
2. Choisir le type de requête.
3. Choisir le ou les champs nécessaires.
4. Déterminer si les champs ont besoin dêtre triés.
5. Cacher les champs au besoin.
6. Déterminer les critères de sélection.
Voici ce que devrait ressembler la partie des critères par après. Critères
Vous n'êtes pas obligé de mettre les guillemets. Access va les mettre pour indiquer que le champ est de type "texte". De plus, vous n'êtes pas obligé de mettre l'opérateur " = ". Il est mis par défaut si aucun autre opérateur n'est choisi. En plus, vous n'êtes pas obligé de mettre le texte en majuscules ou en minuscules. Access ne fait pas la différence lors de la recherche. Il faut cependant écrire le critère correctement. Par exemple, vous ne trouverez personne si vous avez écrit "rooooger" ! Pour les champs de type Date/Heure, Access placera automatiquement devant et après la date le caractère " # ". Donc, vous n'êtes pas obligé de le mettre. Tout cela est pour être capable de différencier les types de champs; "" pour texte, # pour Date/Heure et rien pour les chiffres (monétaire ou numérique). 7. Exécuter la requête.
Voici le résultat. Résultat
Pour les prochains exercices, seulement la section des critères et le résultat seront affichés. Lisez attentivement la question avant de regarder la suite. Essayez d'imaginer la requête avant de regarder la suite. Il y aura des explications supplémentaires sur les nouvelles options que chaque exercice apportera. 2- Affichez le prénom, nom de toutes les personnes dont le nom de famille commence par la lettre " L ".Cette requête sert à voir les caractères spéciaux tel que " * " et " ? ". Le caractère "?" est utile pour remplacer un caractère dans la requête. Par exemple, une recherche sur b?lle pourrait donner les résultats suivants: balle, belle, bille, bulle. En plus d'être utile pour les champs de type texte, il peut aussi être utilise avec les champs de type Date/Heure. Par exemple, #98-??-01# pourrait afficher tous les enregistrements du premier jour de chaque mois. Le caractère "*" sert à remplacer une série indéterminée de caractères. On connaît le début mais pas la fin. Par exemple, une recherche en utilisant bal* pourrait donner le résultat suivant: balade, balai, balance, balcon, baleine, balise, balle, ballerine, ballet ...
Access se chargera d'écrire Comme pour indiquer que les enregistrements recherchés commencent par la lettre "l". Critères
Résultat
3- Affichez le prénom, nom et salaire des personnes ayant un salaire supérieur à 45 000 $.Cette requête démontre les possibilités dutiliser les opérateurs <, >, <=, et >= pour les champs de type numérique ou monétaire. Pour cet exercice, le critère de recherche utilise un champ de type monétaire. Les autres types de champs peuvent aussi être utilisés avec ces opérateurs. Critères
Résultat
Faîtes attention en lisant la question. Est-ce quon vous demande supérieur à X ou égale et supérieur à X ? Cest un petit piège que plusieurs ne font pas attention. 4- Affichez le prénom et le nom des personnes embauchées en 1993.Cette requête pourrait utiliser les opérateurs >= , et, <=. Mais l'exercice va démontrer l'opérateur " Entre " et le type de champ Date/Heure. Remarquez les " # " devant et après la date. Si vous ne les mettez pas, Access va les écrire pour vous. C'est pour identifier que le champ Embauche est de type Date/Heure. Critères
Résultat
Dépendant des options sélectionnées dans Windows et Access, il se peut que le format de la date soit différent. Vous devrez probablement mettre le mois devant et jour et lannée. Faîtes quelques essais en changeant lordre de lannée, du mois et de la journée. 5- Affichez le prénom et le nom des employés ayant la permanence selon l'ordre alphabétique de nom de famille et de prénom.Cette requête regarde les possibilités avec le champ de type logique Oui/Non et aussi de trier le résultat de la requête. De plus, on utilise le champ Permanence pour filtrer les enregistrements. Mais celui-ci n'est pas affiché lors de la présentation de l'information. Assurez-vous que la case Afficher soit désactivée pour ce champ. Critère
Rappelez-vous ! La priorité des tris va au champ trié le plus à la gauche; même si celui-ci n'est pas affiché ! Résultat
6- Affichez le prénom et le nom des employés nayant pas la permanence.Il serait facile de simplement mettre le critère non sous le champ permanence. Mais cet exemple est surtout pour démontrer l'opérateur Pas. Celui-ci affiche toutes les informations sauf ceux que vous avez sélectionnés. Dans ce cas, il affichera tous ceux qui sont différents de oui. Donc, la seule possibilité est non. Critère
Résultat
Un autre exemple serait d'afficher tous les employés sauf ceux de Québec. Note:
|
| Champ : | Prénom | Nom | Commentaires |
| Tri : | |||
| Afficher : | X | X | X |
| Critère : | Est Null | ||
| Ou : |
Résultat
| Prénom | Nom | Commentaires |
| Roger | Lepage | |
| Roger | Dubuc |
Cette requête démontre la possibilité de cacher des champs ainsi que la possibilité d'utiliser plusieurs critères en même temps. Vous pouvez combiner plusieurs critères en même temps si ceux-ci sont sur la même ligne de critère. Si les critères sont sur des lignes différentes, c'est l'équivalent d'afficher le résultat de deux recherches différentes.
Critère
| Champ : | Poste | Nom | Bureau | Commission |
| Tri : | ||||
| Afficher : | X | |||
| Critère : | "Vendeur" | " Gendron " | " Montréal " | |
| Ou : |
Résultat
| Commission |
| 23 000 $ |
Attention ! Il y a un piège dans la question.
Il s'agit d'une question de logique. Posez-vous la question: pouvez-vous être à Montréal ET à Québec en même temps ? Non. Mais vous pouvez être à l'un OU l'autre. Il s'agit juste d'interpréter correctement la question qui vous est présentée. Ce n'est pas toujours aussi simple que ça.
Critère
| Champ : | Prénom | Nom | Poste | Bureau |
| Tri : | ||||
| Afficher : | X | X | X | X |
| Critère : | Vendeur | Montréal | ||
| Ou : | Vendeur | Québec |
Vous pourriez aussi répondre à cette question de cette manière:
Critère
| Champ : | Prénom | Nom | Poste | Bureau |
| Tri : | ||||
| Afficher : | X | X | X | X |
| Critère : | Vendeur | Montréal ou Québec | ||
| Ou : |
Résultat
| Prénom | Nom | Poste | Bureau |
| Denis | Lambert | vendeur | Montréal |
| Suzanne | Rémi | vendeur | Montréal |
| Éric | Gendron | vendeur | Montréal |
| Élise | Lavigueur | vendeur | Québec |
| Paul | Gendron | vendeur | Québec |
Cette question démontre qu'il est possible de combiner des critères sous forme ET et OU. Les critères sur une même ligne sont ajoutés (ET) l'un à l'autre. Les critères qui sont sur une autre ligne offrent une autre possibilité pour chercher de l'information (OU).
L'un des grands avantages des requêtes est la possibilité de créer des champs calculés. Il est possible d'afficher le résultat d'une formule qui utilise les informations provenant des autres champs de l'enregistrement. Pour cet exemple, le revenu est calculé par la somme du salaire et de la commission de l'employé.
Vous devez écrire le champ calculé dans l'une des cases de la ligne Champ. Le champ calculé est composé de deux parties: le nom et la formule. Elles sont séparées par un ":". Pour l'exercice, il faut créer le champ calculé pour le revenu de chaque employé.
Placez le curseur
dans l'une des cases vides de la ligne Champ.
Écrivez
le nom que vous voulez donner à votre champ. Pour l'exercice, écrivez
"Revenu".
Écrivez
un : pour séparer le nom du champ de la formule dont vous avez besoin.
C'est après le : que vous écrivez votre formule.
Écrivez
la formule salaire + commission
Ex.: nom:formule, tps:total*0,07 , tvq: (total+tps)*0,75 etc.
Donc, lorsque vous créez votre table, il ne doit pas avoir de champs dont vous pouvez trouver le résultat à partir des autres champs de l'enregistrement. L'exemple ci-dessus démontre qu'il est inutile d'avoir un champ TPS et TVQ dans une table puisqu'il est facile de les calculer.
Attention !
Si le nom du champ est composé de plusieurs mots, vous devez le mettre
entre des crochets []. Ex.: [Date de naissance], [Taxe sur les produits et les
services].
Il arrive souvent après que vous avez exécuté une requête ayant un champ calculé qu'Access demande la valeur du paramètre. Une fenêtre apparaît avec le message et indique aussi le nom d'un champ. La raison que cette fenêtre apparaît est simple: vous avez fait une erreur d'orthographe sur l'un des noms de champ. Il faut absolument que le nom du champ dans la case du champ calculé soit identique à celui que vous avez donné dans la table ou dans la requête.

Pour cet exercice, plusieurs oublient de mettre deux "m" ou deux "s" au champ commission. Certains mettent même un "s" à la fin du champ Commission ou du champ Salaire. Vous devez l'écrire de la même façon qu'il est écrit dans la table.
Critère
| Champ : | Prénom | Nom | Revenu : salaire + commission |
| Tri : | |||
| Afficher : | X | X | X |
| Critère : | >=45000 | ||
| Ou : |
Résultat
| Prénom | Nom | Revenu |
| Roger | Lepage | 50 000 $ |
| Denis | Lambert | 45 000 $ |
| Suzanne | Rémi | 65 000 $ |
| Élise | Lavigueur | 47 000 $ |
Cette requête utilise encore une fois un champ calculé. Il s'agit d'une multiplication au lieu d'une addition.
Critère
| Champ : | Poste | Ajusté : commission * 1,2 |
| Tri : | ||
| Afficher : | X | |
| Critère : | " vendeur " | |
| Ou : |
Résultat
| Ajusté |
| 54 000,00 $ |
| 78 000,00 $ |
| 27 600,00 $ |
| 56 400,00 $ |
| 26 400,00 $ |
Si vous le voulez, corrigez cette requête pour ajouter le prénom et le nom de famille des vendeurs devant leurs revenus.
Il serait trop facile de trouver la réponse en utilisant le critère "Entre". Cette requête est pour vous montrer ce qui est possible d'accomplir avec les fonctions d'Access et le générateur d'expression.
À date toutes les requêtes ont été accomplies avec des critères de recherche simples. Access vous offre une liste de fonctions préparées pour accomplir des recherches plus élaborées. Pour l'exercice, il faut utilise la fonction année() qui se retrouve dans la catégorie Date/Heure. Cette fonction ressort sous forme de chiffre l'année du champ du type Date/Heure qui s'y retrouve.
Un champ de type Date/Heure contient beaucoup d'informations. Il y a l'année, le mois, le jour, l'heure, les minutes, les secondes et même les factions de secondes qui y sont conservées. Access vous offre des fonctions pour ressortir que la partie qui vous intéresse de ces données.
Par exemple, si le champ de type Date/Heure Date de naissance est 1999-07-02, la fonction année([Date de naissance]) va donner le chiffre 1999.
Le même concept s'applique à d'autres fonctions. Ex.:
| mois([champ de type Date/Heure]) | Chiffre de 1 à 12 ( Janvier à décembre ) |
| jour([champ de type Date/Heure]) | Chiffre de 1 à 31 ( 1er au 31e jour du mois ) |
| joursem([champ de type Date/Heure]) | Chiffre de 1 à 7 ( Dimanche à samedi ) |
Access offre plusieurs autres fonctions qu'on peut écrire directement dans la case ou en utilisant le générateur d'expression qui sera utilisé pour cet exercice.
Ajoutez
les champs Prénom et Nom à la liste des champs de la
requête.
Placez
le pointeur dans la troisième case de la ligne des champs: à la droite
du champ Nom.
De la
barre d'outils des requêtes, appuyez sur le bouton .
OU
Appuyez
sur le bouton droit de la souris.

Du
menu contextuel, sélectionnez l'option Générer.
La fenêtre du générateur d'expression va apparaître.
C'est à partir de cette fenêtre que vous avez accès à plusieurs des ressources d'Access. Il vous est possible de chercher tous les objets de tous les champs, les requêtes, les formulaires, les états de votre base de données. De plus, vous avez aussi accès aux fonctions intégrées d'Access. Ceux-ci vous donnent beaucoup de flexibilité au moment de la création de vos requêtes. Si vous êtes intéressé, vous pouvez aussi créer vos propres fonctions.
C'est dans la case du haut qui sera inscrit la formule pour le champ calculé de cet exercice. Vous pouvez dans certains cas combiner des fonctions d'Access pour atteindre le résultat que vous voulez. Ex.: Abs ( CMonnaie ([champ de type texte]) ) . Juste en dessous, il y des boutons pour les opérations mathématiques et différents critères de sélection. Dans les trois colonnes en dessous, il est possible d'accéder à tous les objets d'Access. Pour l'exercice, il faut chercher la fonction intégré Année().
Pour voir le contenu des dossiers qui ont un "+" sur le dessus, il faut faire un "double-clic" sur le dossier en question.
Faites
un double-clic sur le dossier Fonctions
.
Cliquez
sur le dossier Fonctions intégrées
.
Le contenu de la deuxième et la troisième colonne vont se remplir. La deuxième colonne contient la liste des catégories de fonctions. La troisième colonne contient la liste des fonctions disponibles. La fonction Année() fait partie de la catégorie Date/Heure.
Dans
la deuxième colonne, cliquez sur la catégorie Date/Heure.
Le contenu de la troisième colonne change pour montrer seulement les fonctions de la catégorie choisie, soit celle de Date/Heure. La fonction recherchée est à la seconde de la liste. Pour l'insérer dans la section de la formule:
Faite
un double-clic sur la fonction Année().
OU
Cliquez
sur la fonction Année().
Appuyez
sur bouton Coller.
Le contenu de la case de formulation sera: Année("Nombre").
Il suffit maintenant de remplacer "Nombre" par le champ de type Date/Heure nécessaire pour la requête, soit le champ Embauche.
Supprimer
le texte "nombre", incluant les guillemets mais pas les parenthèses.
Laissez
le curseur entre les deux parenthèses.
Faites
un double-clic sur le dossier Tables de la première colonne.
Encore
dans la première colonne, cliquez sur la table Employés.
Le contenu de la deuxième et la troisième colonne vont changer pour montrer les possibilités à partir de cette table.
Dans
la deuxième colonne, faites un "double-clic" sur le champ Embauche.
OU
Cliquez
sur le champ Embauche et appuyez sur le bouton Coller.
Le texte [Employés]![Embauche] devrait apparaître entre les deux parenthèses. Ceci est pour indiquer que le champ Embauche de la table Employés a été sélectionné.
La création de la fonction est terminée. Le résultat devrait être année([employés]![embauche])
Appuyez
sur le bouton OK.
Access vous retourne au mode création de requêtes.
Appuyez
sur la touche Entrée pour terminer l'entrée de la formule dans
la case des champs.
Access va ajouter "Expr1:" devant la formule. Access considère cette fonction comme un champ calculé des exercices précédents. Un champ calculé est toujours composé d'un nom, suivi d'un deux points et le calcul. Vous pouvez si vous le voulez changer le texte "Expr1" par quelque chose de plus approprié tel que "Année d'embauche".
Critère
| Champ : | Prénom | Nom | Expr1:année([employés]![embauche]) |
| Tri : | |||
| Afficher : | X | X | |
| Critère : | 1993 | ||
| Ou : |
Résultat
| Prénom | Nom |
| Suzanne | Rémi |
| Éric | Gendron |
| Roger | Dubuc |
| Élise | Lavigueur |
| Paul | Gendron |
Quelqu'un a trouvé une autre manière de répondre à cette question.
Critère
| Champ : | Prénom | Nom | embauche |
| Tri : | |||
| Afficher : | X | X | |
| Critère : | 93-??-?? | ||
| Ou : |
Bien que cette manière fonctionne, elle ne démontre pas les possibilités des fonctions. Cet exercice a démontré qu'il est possible d'utiliser une fonction pour un champ calculé. Mais, vous pouvez aussi utiliser les fonctions pour les critères de votre requête.
Cet exercice démontre un peu mieux l'avantage des fonctions dans des champs calculés. Elle démontre aussi la fonction qui est la date de l'ordinateur sur lequel vous travaillez. Il devient donc facile, avec la fonction année(), de faire une soustraction pour calculer le nombre d'années de service. Le résultat suivant est correct si la requête a été faite en l'an 2002.
Critère
| Champ : | Prénom | Nom | Service:Année(date())-année([embauche]) |
| Tri : | |||
| Afficher : | X | X | X |
| Critère : | |||
| Ou : |
Résultat
| Prénom | Nom | Service |
| Roger | Lepage | 10 |
| Denis | Lambert | 10 |
| Suzanne | Rémi | 9 |
| Éric | Gendron | 9 |
| Roger | Dubuc | 9 |
| Élise | Lavigueur | 9 |
| Paul | Gendron | 9 |
Il y a aussi d'autres fonctions du groupe Date/Heure qui pourrait vous intéresser. Il y a la fonction maintenant() qui donne non seulement la date mais aussi l'heure de l'ordinateur. Donc, au lieu d'avoir juste le 98-01-01 avec la fonction date(), il est possible d'avoir avec la fonction maintenant() 98-01-01 12:00:00 . Il y d'autres fonctions tel que jour(), joursem(), mois() et plusieurs autres qui sont disponibles dans la catégorie Date/Heure. Il ne faut pas oublier qu'Access vous offre 176 fonctions distribuées dans 16 catégories.
Note sur les champs de type Date/Heure.
Bien qu'Access affiche l'information sous forme de date ou d'heure, les informations
sont conservées dans le logiciel sous forme numérique. Par exemple,
le chiffre 37222 équivaut au 27 novembre 2001. Donc 37222,5 équivaut
à midi le 27 novembre 2201.
Cet exercice est pour vous démontrer la fonction Vraifaux pour afficher du texte. Elle fonctionne sur le même principe que la fonction =Si d'Excel. Elle lui faut trois informations, ou trois "paramètres", pour fonctionner correctement: la condition, que faire si vrai et que faire si faux. Ces paramètres sont séparés par un point-virgule (;). On vous demande ici d'écrire le texte "Champion" si la personne a une commission de 45 000 $ ou plus. Sinon, il faut afficher le texte "Désolé".
Critère
| Champ : | Prénom | Nom | Critère:vraifaux([commission]>= 45000;"Champion";"Désolé") |
| Tri: | |||
| Afficher : | X | X | X |
| Critère : | |||
| Ou : |
Résultat
| Prénom | Nom | Critère |
| Roger | Lepage | Désolé |
| Denis | Lambert | Champion |
| Suzanne | Rémi | Champion |
| Éric | Gendron | Désolé |
| Roger | Dubuc | Désolé |
| Élise | Lavigueur | Champion |
| Paul | Gendron | Désolé |
Pour cet exercice, la fonction Vraifaux a été utilisée pour afficher du texte. Vous pouvez aussi l'utiliser pour aussi afficher des chiffres comme dans le prochain exercice.
C'est dans ce genre de situation de la fonction vraifaux est vraiment avantageuse. Elle s'applique seulement si les conditions requises sont remplies. Dans l'exercice précédent, la fonction Vraifaux() était utilisée avec du texte. Ici la fonction est utilisée pour calculer un chiffre.
Critère
| Champ : | Prénom | Nom | Ajusté:vraifaux([commission]>= 45000;[commission]+5000;[commission]) |
| Tri: | |||
| Afficher : | X | X | X |
| Critère : | |||
| Ou : |
Résultat
| Prénom | Nom | Ajusté |
| Roger | Lepage | 0 |
| Denis | Lambert | 50 000 |
| Suzanne | Rémi | 70 000 |
| Éric | Gendron | 23 000 |
| Roger | Dubuc | 0 |
| Élise | Lavigueur | 52 000 |
| Paul | Gendron | 22 000 |
Pouvez-vous préparer une requête qui démontrait la différence
à la masse salariale avec et sans cette prime ? Vous devriez être
capable si vous avez bien compris les exercices précédents.
À date, les questions affichaient les informations selon les critères demandés. Mais que faire lorsqu'on a besoin de trouver la somme, la moyenne ou le nombre d'enregistrements qui répondent à certains critères ? C'est pour ces circonstances qu'il y a les opérations.
Il y a une fonction très puissante qui n'a pas été couverte jusqu'à présent: les opérations de regroupement. Il est possible avec les opérations de regrouper les enregistrements pour pouvoir les additionner, les compter, trouver la moyenne, le plus petit, le plus grand et plusieurs autres. C'est aussi une opportunité de revoir les champs calculés pour déterminer la masse salariale de l'entreprise. On utilise encore une fois un champ calculé pour déterminer le revenu (salaire + commission) de chaque employé.
De
la barre d'outils, appuyez sur le bouton .
OU
Du menu Affichage, sélectionnez l'option Opérations.
Une nouvelle ligne s'est insérée en dessous de la ligne des champs. C'est la ligne des opérations. Access vous permet d'accomplir des opérations mathématiques sur les enregistrements d'une requête. Si vous regardez les opérations possibles, vous retrouverez parmi d'autres la somme, la moyenne, le plus petit (min), la plus grande (max) etc.
Dans
la première colonne, écrivez la formule suivante: Revenu: [salaire]
+ [commission] .
De
la ligne des opérations, sélectionnez l'opération de Somme pour le revenu.
Note:
Plusieurs personnes mélangent les opérations Somme et
Compte. L'opération Somme est utilisée pour l'addition de
chiffres de champs de type numérique ou de type monétaire.
L'opération Compte est utilisée pour compter le nombre d'enregistrements
qui répondent aux critères sélectionnés.
Il est aussi à noter qu'il est impossible de mettre un critère sous les opérations sauf pour les opérations Regroupement, Compte, Expression et Où. Cette dernière sera utilisée pour l'exercice numéro 19.
Critère
| Champ : | Revenu : [salaire] + [commission] |
| Opération: | Somme |
| Tri: | |
| Afficher : | X |
| Critère : | |
| Ou : |
Résultat
| Revenu |
| 295 000 $ |
Il y a aussi une autre manière de réaliser la requête en utilisant la fonction somme. Voici à quoi elle ressemblerait.
Critère
| Champ : | Revenu : somme([salaire] + [commission]) |
| Tri: | |
| Afficher : | X |
| Critère : | |
| Ou : |
Dans ce cas, elle n'est pas vraiment plus pratique que l'opération somme. Elle est cependant plus pratique lorsqu'elle est utilisée dans un champ calculé avec d'autres fonctions. Par exemple: somme([commission] + [salaire])/compte([bureau]). En passant, cette dernière formule est l'équivalent de moyenne([salaire] + [commission]).
Il s'agit encore une fois d'une requête qui a besoin d'une opération. Il faut cependant un champ de plus pour avoir le détail nécessaire. Dans ce cas, il faut ajouter le champ bureau pour pouvoir répartir les revenus par poste.
De
la barre d'outils, appuyez sur le bouton .
OU
Du menu Affichage, sélectionnez l'option Opérations.
Critère
| Champ : | Poste | Revenu : salaire + commission |
| Opération: | Regroupement | Somme |
| Tri: | ||
| Afficher : | X | X |
| Critère : | ||
| Ou : |
Résultat
| Poste | Revenu |
| Gérant | 93 000 $ |
| Vendeur | 202 000 $ |
La masse salariale de l'entreprise est maintenant réparti selon le poste de travail: gérant ou vendeur. Pour l'exemple, il y a seulement deux postes. S'il y aurait eu plus que cela, chaque poste serait affiché avec son revenu équivalent.
Il s'agit aussi d'une requête qui a besoin d'une opération (somme). Il faut ajouter encore plus de détails que les deux dernières requêtes. Dans ce cas, il faut ajouter les champs Bureau et poste en plus de calculer les revenus.
Appuyez
sur le bouton .
OU
Du menu Affichage, sélectionnez l'option Opérations.
Critère
| Champ : | Bureau | Poste | Revenu : salaire + commission |
| Opération : | Regroupement | Regroupement | Somme |
| Tri: | |||
| Afficher : | X | X | X |
| Critère : | |||
| Ou : |
Résultat
| Bureau | Poste | Revenu |
| Montréal | Gérant | 50 000 $ |
| Montréal | Vendeur | 133 000 $ |
| Québec | Gérant | 43 000 $ |
| Québec | Vendeur | 169 000 $ |
Plus que vous ajoutez de champs, plus que la réponse sera détaillée. À l'exercice 11, il y avait seulement un champ pour le total des revenus. À l'exercice 12, il y avait en plus du champ des revenus celui des postes. Le résultat de la requête est plus détaillé qu'auparavant. Avec cette question et trois champs à l'affichage, le résultat est encore plus détaillé.
Vous avez remarqué dans les trois derniers exercices qu'à chaque fois que vous ajoutez un champ à la requête que la réponse devient de plus en plus détaillée. Mais, que faire lorsqu'il faut faire une opération avec des critères sans détailler sur ceux-ci ? Il existe une opération pour régler cette situation. L'opération "Où" est utilisé lorsqu'on veut ajouter une condition à une requête sans pour autant détaillé la réponse sur cette condition. Pour l'exemple, le champ Embauche est utilisé pour trouver les employés qui ont été embauché en 1993. Cependant, le revenu n'est pas distribué pour chacune des dates d'embauche de cette année.
Critère
| Champ : | Embauche | Bureau | Revenu : salaire + commission |
| Opération : | Où | Regroupement | Somme |
| Tri: | |||
| Afficher : | X | X | |
| Critère : | Entre #93-01-01# et #93-12-31# | ||
| Ou : |
Résultat
| Bureau | Revenus |
| Montréal | 88 000 $ |
| Québec | 112 000 $ |
Si vous n'aviez pas utilisé l'opération "Où", et laissé à l'opération regroupement pour le champ Embauche, le résultat aurait affiché le cumulatif des revenus par bureau et par date d'embauche des employés de la compagnie.
Cet exercice est pour vous démontrer le fonctionnement de l'opération Compte. Cette opération, comme le nom l'indique, compte le nombre d'enregistrements qui répondent aux critères demandés. Aussi, comme pour toutes les opérations, à chaque fois que vous ajoutez un champ à la requête, la réponse devient de plus en plus détaillée.
Appuyez
sur le bouton .
OU
Du menu Affichage, sélectionnez l'option Opérations.
Critère
| Champ : | Bureau | Poste | Prénom |
| Opération : | Regroupement | Regroupement | Compte |
| Tri: | Croissant | Croissant | |
| Afficher : | X | X | X |
| Critère : | |||
| Ou : |
Résultat
| Bureau | Poste | CompteDePrénom |
| Montréal | Gérant | 1 |
| Montréal | Vendeur | 3 |
| Québec | Gérant | 1 |
| Québec | Vendeur | 2 |
L'opération Compte calcule le nombre 'enregistrements qui répond aux critères que vous avez choisi. Il y a cependant une situation ou celle-ci pourrait sous-estimer le nombre exact. Reprenons le dernier exemple avec une petite modification. Au lieu de faire le compte sur le champ Prénom, utilisez le champ Commentaire.
| Champ : | Bureau | Poste | Commentaire |
| Opération : | Regroupement | Regroupement | Compte |
| Tri: | Croissant | Croissant | |
| Afficher : | X | X | X |
| Critère : | |||
| Ou : |
Résultat
| Bureau | Poste | CompteDeCommentaire |
| Montréal | Gérant | 0 |
| Montréal | Vendeur | 3 |
| Québec | Gérant | 0 |
| Québec | Vendeur | 2 |
Il n'y a plus de gérants ! Pourquoi y a-t-il une différence ? Access n'ajoute pas les enregistrements dont le contenu du champ est vide. Comme vous l'avez vu à l'exercice 7, le contenu du champ commentaire est vide pour les gérants de l'entreprise. Il est donc fortement suggéré de toujours utiliser avec l'opération Compte un champ dont on est certain qu'il y a un contenu. Vous pouvez l'un des autres champs de la requête ou le champ qui sert de clé primaire de la table. Par définition, celui-ci ne peut jamais être vide.
L'exercice consiste à utiliser l'opération Compte pour connaître le nombre de personnes qui répondent aux critères mentionnés ci-dessus. Cet exercice ressemble beaucoup à l'exercice 19. La différence est que cet exercice utilise l'opération Compte au lieu de l'opération Somme. Puisque les gérants de l'entreprise n'ont pas de commissions, le champ Poste est inutile pour compter seulement les vendeurs.
Appuyez
sur le bouton .
OU
Du menu Affichage, sélectionnez l'option Opérations.
Critère
| Champ : | Nombre:Prénom | Commission |
| Opération : | Compte | Où |
| Tri: | ||
| Afficher : | X | |
| Critère : | >=45000 | |
| Ou : |
Résultat
| Nombre |
| 3 |
Pour créer une analyse croisée, vous avez besoin d'au moins trois champs. Le premier est l'En-tête de colonne. Ce sont les valeurs qui seront affichées au haut de chaque colonne du tableau d'analyse croisé. Pour cet exercice, ce sera le contenu du champ Poste. Donc, les colonnes du tableau vont représenter chacune des valeurs qui se retrouvent dans le champ. Puisqu'il y a seulement deux occupations, gérant et vendeur, le tableau aura seulement deux colonnes avec ces valeurs.
Le second élément nécessaire à une analyse croisée est d'avoir au moins un En-tête de ligne. C'est le champ qui va détailler les valeurs des colonnes. Il vous est aussi possible d'ajouter d'autres En-têtes de ligne pour décrire avec plus de détails les résultats. Pour cet exercice, ce champ sera le champ Bureau.
Le dernier élément à la création d'une analyse croisée est une valeur. C'est un chiffre ou une opération comme ceux utilisés pour les exercices de 16 à 21 (somme, moyenne, compte ...). Pour les besoins de l'exercice, il est encore une fois nécessaire d'utiliser le champ calculé Revenu qui est le total du salaire et de la commission de chacun des employés de l'entreprise (revenu: [salaire] + [commission]). Un tableau d'analyse croisé peut avoir seulement une opération à la fois. Donc, si vous avez besoin d'avoir la somme et la moyenne de la masse salariale, il faudra deux analyses avec des opérations différentes (Somme et Moyenne par exemple).
Créez
une nouvelle requête en mode Création.
Il aurait été possible d'utiliser l'assistant d'analyse croisée si l'exercice n'utilisait pas le champ calculé revenu.
Parmi
la liste des tables et requêtes, sélectionnez la table Employés.
Sélectionnez
une requête de type d'analyse croisé en sélectionnant le bouton
.
OU
Du
menu Requête, sélectionnez la requête Analyse
croisée.
Sélectionnez
le champ Poste et Bureau.
Sur
la ligne des champs, à la droite des deux champs que vous venez d'ajouter,
écrivez la formule pour le champ calculé: Revenu: [salaire] + [commission] .
À
la ligne des opérations, sélectionnez l'opération Somme sous le champ Revenu. Laissez l'opération Regroupement aux
deux autres champs.
À
la ligne d'analyse, sélectionnez l'option En-tête de colonne sous le champ Poste.
À
la ligne d'analyse, sélectionnez l'option En-tête de ligne sous le champ Bureau.
À
la ligne d'analyse, sélectionnez l'option Valeur sous le champ calculé Revenu.
Voici une représentation des champs et des options sélectionnées.
| Champ: | Poste | Bureau | Revenu: [salaire] + [commission] |
| Table: | Employés | Employés | |
| Opération: | Regroupement | Regroupement | Somme |
| Analyse: | En-tête de colonne | En-tête de ligne | Valeur |
| Tri: | |||
| Critère: |
Exécutez
la requête en appuyant sur le bouton
.
Résultat:
| Bureau | Gérant | Vendeur |
| Montréal | 50 000,00 $ | 133 000,00 $ |
| Québec | 43 000,00 $ | 69 000,00 $ |
Vous pouvez ajouter d'autres champs sur la ligne d'analyse s'il utilise l'En-tête de ligne. Le résultat sera plus détaillé s'il y a plus de champs qui utilisent l'en-tête de ligne. Par exemple, vous pouvez ajouter le champ Permanence pour différencier la masse salariale des employés qui ont ou pas la permanence à l'intérieur de l'entreprise. Ou, vous pouvez utiliser un champ calculé avec la fonction Année([embauche]) pour déterminer la masse salariale par le nombre d'années d'expérience dans la compagnie. Il vous est aussi possible d'avoir d'autres champs pour des critères de sélection. Si vous ne voulez pas que ces champs s'affichent dans le tableau, utilisez l'option Non affichée sur la ligne d'analyse.
Cet exercice démontre qu'il est possible d'avoir une analyse croisée qui utilise l'opération Compte et des critères. Au lieu d'avoir un tableau contenant tous les employés, cette analyse aura seulement les employés ayant la permanence dans l'entreprise.
Critère:
| Champ: | Bureau | Stat social | Commission | Permanence |
| Table: | Employés | Employés | Employés | Employés |
| Opération: | Regroupement | Regroupement | Compte | Regroupement |
| Analyse: | En-tête de colonne | En-tête de ligne | Valeur | |
| Tri: | Croissant | Croissant | ||
| Critère: | Oui |
Exécutez
la requête en appuyant sur le bouton
.
Résultat:
| Statut social | Montréal | Québec |
| 1 | 1 | |
| 2 | 2 | |
| 3 | 2 |
Il y a cinq personnes parmi la liste qui ont la permanence; trois à Montréal et deux à Québec. Avec la description des nombres, on sait qu'il y a un célibataire (1), deux personnes mariées (2) et deux personnes mariées avec des enfants (3).
Il arrive souvent après l'entré des données initiales qu'il y a des corrections de données massives. Vous pouvez toujours changer manuellement le contenu des champs. Mais, vous pouvez aussi, avec la requête de type Mise à jour, changer le contenu d'un champs plus rapidement et efficacement et sans avoir à s'inquiéter des erreurs d'orthographe.
Contrairement à une requête de type sélection ou de type Analyse croisée, une requête d'action modifie le contenu d'une table selon les critères que vous avez choisis. Ici, il consiste à modifier le contenu du champ Bureau à Sillery pour tous les enregistrements sont le contenu est présentement Québec.
Créez
une nouvelle requête en mode création.
De
la liste des tables et requêtes, sélectionnez la table Employés.
Sélectionnez
le type de requête Mise à jour en appuyant sur le bouton
.
OU
Du
menu Requête, sélectionnez l'option Requête
mise à jour.
De
la liste des champs, sélectionnez le champ Bureau.
À
la ligne Mise à jour sous le champ Bureau, entrez le texte: Sillery .
À
la ligne des critères sous le champ Bureau, entrez le texte: Québec .
Access va automatiquement ajouter des guillemets autour de Sillery et Québec puisque le champ Bureau est de type Texte.
| Champ: | Bureau |
| Table: | Employés |
| Mise à jour: | "Sillery" |
| Critère: | "Québec" |
Exécutez
la requête en appuyant sur le bouton
.
Access va vous demander une dernière fois de confirmer la modification à la table de la base de données.
Appuyez
sur le bouton OK pour confirmer la modification.
Vous pouvez aussi créer une requête de type Mise à jour en utilisant plusieurs champs pour les critères de sélection ou pour la mise à jour. Vous pouvez aussi inverser cette opération en changeant de place Québec et Sillery dans la grille des critères.
Il vous est aussi possible de vérifier si les enregistrements à modifier répondent tous aux critères que vous avez sélectionnés avant la mise à jour. Utilisez le type de requête Sélection pour afficher les enregistrements avec les critères de votre choix. Une fois que vous êtes satisfait que les enregistrements doivent être modifiés, changez le type de requête de Sélection à Mise à jour.
Il s'agit ici d'une requête d'action de type suppression. Celle-ci supprime tous les enregistrements de la table qui répondent aux