![]()
Pour suivre cette leçon, vous devez avoir suivi les leçons précédentes. Ou plus précisément, vous devez être en possession de la base de données procd.mdb telle qu'elle était à la fin de la leçon précédente. Si vous n'êtes pas certain de l'avoir, vous pouvez la télécharger ici
| La dernière fois, nous avons mis le premier pied dans les requêtes : Nous avons vu comment les créer, et les modifier. Nous avons constaté qu'il s'agit simplement d'une sorte de vue sur les tables, et que la moindre modfication dans les données via une requête sera immédiatement transposée dans la tablée correspondante. Nous avons constaté que les requêtes ne contiennent aucune donnée, et que le fait de les détruite n'affecte pas du tout vos précieuses données. Nous avons vu comment faire pour jouter, supprimer ou déplacer les différents champs. |
| Dans cette leçon, nous allons commencer à faire des requêtes plus intéressantes. Bon au début, vous aurez un peu l'impression que finalement, l'utilisation des filtres dans les tables avec le bouton droit de la souris (leçon 19) est plus simple, mais petit à petit, vous apprendrez a apprécier les requêtes au fur et à me sure de votre avancement. |
C'est un premier exemple simple : Nous allons le mettre en oeuvre : Créez une nouvelle requête, basée sur T_Celebrite, et placez y les champs Prenom, NomClient, et Domaine (Je suppose que vous savez bien faire ça maintenant, sinon, revoyez la leçon précédente).
Dans cette requête, en mode création, vous allez écrire sport dans le critère
de la colonne Domaine, comme ceci :
. Lorsque vous appuyez sur ENTER, ou simplement si
vous cliquez dans une autre case, sport se met automatiquement entre guillemets
:
(Vous
auriez pu mettre les guillemets vous-même, pas puisqu'Access à la gentillesse de
le faire à notre place, laissons-le faire)
Pour constater le résultat de notre première requête un tant soit peu utile,
lancez-là en mode saisie de données :
. Vous avez la liste de
tous les prénoms et le nom des gens dont le domaine = Sport. Il y en a 17 (le
chiffre en bas, comme dans les tables). Remarquez également la petite diférence
avec les extractions dans les tables (vous vous rappelez : Bouton droit de la
souris/Filtrer pour): Il y avait le mot (Filtré) à côté du nombre
d'enregistrements. Ici, il n'y a pas ce petit mot, parce que la requête est
complète. C'est vrai que c'est un filtre quelque part, mais comme il s'agit du
résultat d'une requête, il indique 17 enregistrements, point final. Bon, c'est
un détail, ne vous focalisez pas trop la dessus.
Oui : Encore une fois, Access ne fait pas la différence entre majuscules et minuscules. Vous auriez écrit SPORT, sport, sPoRt ou Sport, comme critère, vous auriez toujours eu 17 réponses.
Si c'est du texte, oui. Nous verrons que s'il s'agit de dates, il met des dièses #, et si c'est du chiffre, il ne met carrément rien autour. Mais ne vous préoccupez pas trop de savoir s'il faut mettre des guillemets ou pas puisqu'Access le fait à votre place.
Dans une leçon précédente, nous avons vu qu'il avait été classé sous Chanson par erreur... Eh oui, encore une fois, voyez comme les erreurs de saisie sont dérangeantes... Vous pouvez vérifier que Jean Alési est bien classé sous chanson (laissez-le mal classé, ça nous permettra de constater d'autres erreurs tout au long du cours).
Bien. Maintenant, cette requête, nous allons la sauvegarder : donnez lui le nom R_CelebriteSportive (R pour requête, Celebrite pour rappeler le nom de la table, et sportive pour préciser que c'est ce que la requête recherche. Pas de S a sportive pour garder la règle absolue : JAMAIS de pluriels dans les noms de tables ou de champs).
C'est excatement ça !
Oui. C'est vrai. Bon, comme je vous ai dit, nous allons garder des noms
stricts pour nos requêtes, mais nous avons la possibilité de les décrire, de
leur donner un petit nom sympathique pour mieux nous y retrouver : Quittez cette
requête. Nous allons lui donner un meilleur nom : "Liste des célébrités
sportives", mais vous n'aller pas renommer la requête, vous allez cliquer avec
le bouton droit de votre souris sur R_CelebriteSportive, et choisir Propriétés
. Vous
arrivez dans cette boîte de dialogue :
. Elle contient
plusieurs renseignements : La date de création de la requête, son éventuelle
date de modification, et, ce qui nous intéresse, une zone Description. Ecrivez
dedans : "Liste des célébrités sportives"
, et cliquez sur OK.
Normalement, cette manipulation devrait vous rappeler des souvenirs : Nous avons
déjà vu ça lors de la leçon
12.
Ici, justement, nous allons bien exploiter cette manière de faire pour non
pas mettre une description conviviale de chaque requête, mais plutôt la manière
que nous avons utilisé pour obtenir tel ou tel résultat. Justement, pour cette
requête, donnez comme description Domaine = "sport" :
, et cliquez sur OK.
Demandez l'affichage complet (revoyez la leçon
12 si vous avez besoin de vous rafraîchir la mémoire). L'icone à cliquer est
celui-ci :
. Comme ça, vous verrez la requête comme ceci :
, ce qui fait que quand
nous aurons fait un grand nombre de requêtes (histoire de voir toutes leurs
options possibles), vous verrez comme description une sorte de petit résumé de
ce que nous avons écrit dedans, et ça vous servira comme une sorte de
"dictionnaire syntaxique" : Vous n'aurez plus qu'à consulter votre liste de
requêtes et leur description pour vous donner des idées pour la création
d'autres requêtes, ou comme aide-mémoire.
D'accord. Créez une nouvelle requête, toujours basée sur T_Celebrite,
placez-y les champs Prenom, NomClient, et SalaireMensuel. Comme critère de
SalaireMensuel, Ecrivez >25000 :
. Si vous cliquez dans
une autre case, vous verrez que cette fois, Access n'ajoute pas de guillemets,
c'est normal : Ce sont des chiffres. Lancez la requête en mode saisie de données
: Vous devriez avoir 22 enregistrements : Tous les gens qui gagnent plus de
25000 francs par mois.
Non, parce que nous avons demandé >25000. Mettez plutôt >=25000, ça les inclueras. Combien en trouvez-vous ?
Qui est-ce, le personnage supplémentaire ?
Oui, mais vous pouvez très bien, comme dans les tables, cliquer avec le
bouton droit de votre souris et choisir "Ordre croissant"
, ce sera plus facile :
Les sommes les plus basses seront en premier lieu...
Non, pas du tout, c'est un simple tri dynamique, comme dans les tables : Dans les tables, lorsque vous demandiez des tris alphabétiques, ils n'étaient pas mémorisés non plus...
Oui, mais nous verrons cela un peu plus tard. Tout ce que je voulais vous montrer ici, c'est que les requêtes, comme les tables, peuvent se trier avec dynamiquement en utilisant le bouton droit de la souris.
Là, il n'y aurait même pas besoin d'écrire le signe =. Le seul chiffre 25000 suffirait. Ne le faites pas. C'était juste une petite précision
Vous allez maintenant auvegarder cette requête sous R_CelebriteRiche, et comme commentaire pour cette requête, vous allez préciser : Salaire>=25000 (Donc bouton droit de la souris sur la requête, et propriétés)
Essayons : Créez une nouvelle requête, toujours basée sur T_Celebrite,
contenant les champs Prenom, NomClient et SalaireMensuel. Comme critère de
salaire mensuel, écrivez : entre 10000 et 15000 
Oui. Ca ne veut pas dire qu'il comprendra n'importe quoi, mais le mot "Entre" et "Et", il comprend. D'ailleurs, si vous cliquez dans une autre case, ou que vous appuyez sur Enter, vous allez constater qu'il met une majsuscule à "entre" et à "et" : Entre 10000 Et 15000
Oui. Lancez la requête. Vous avez bien 24 personnes ? Triez-les par ordre alphabétique (Bouton droit de la souris, Ordre croissant)
Oui. Avant ça, vous allez sauvegarder cette requête sous R_CelebriteSalaireMoyen. Maintenant, nous allons faire une nouvelle requête pour justement voir comment faire pour exclure les gens qui gagnent exactement 10'000 et ceux qui gagnent exactement 15'000 francs.
Si, on peut... OK, si vous voulez. Alors dans ce cas, restez dans cette
requête que vous venez de sauvegarder sous le nom R_CelebriteSalaireMoyen, et
remplacez votre critère Entre 10000 et 15000 par
>10000 Et <15000
Oui. Lancez la requête. Vous avez bien 21 personnes au lieu de 24 ?
Oui, MAIS attention : Si vous cliquez sur la petite disquette
, ou que vous faites
Fichier/Enregistrer, vous allez écraser votre précédente requête
R_CelebriteSalaireMoyen ! Ce n'est pas ce qu'on veut !
Exactement. Allez-y, et donnez-lui le nom R_CelebriteSalaireMoyen2:
, et cliquez sur OK.
Quittez la requête, et donnez une description pour chacunde de ces deux
nouvelles requêtes : 
| Dans cette leçon, nous venons d'apprendre à utiliser quelques critères tels que < (inférieur à), <= (inférieur ou égal à), "sport" (recherche d'une chaîne de caractère précise), Entre 10000 Et 15000 (Recherche d'une fourchette de valeurs, les limites étant incluses), nous avons appris comment utiliser le mot Et accompagné des signes > et < pour exclure les valeurs limites, Et, Enregistrer Sous. Nous avons également appris comment modifier une requête existante pour lui attribuer ensuite un autre nom. |
Pour voir les solutions, il vous suffit de sélectionner le questionnaire ci-dessus : 3 petites étoiles *** apparaîtront en face des bonnes réponses. |
|
Vous ferez l'exercice proposé directement dans votre base de données habituelle ProCD. Il s'agit simplement de création de requêtes selon des critères bien définis. Chacune de vos requêtes devra obligatoirement contenir le Prénom et le nom de la table T_Celebrite, ainsi que d'autres champs en fonction de la demande :
Téléchargez la solution de l'exercice ici (c'est également la version de ProCD telle qu'elle devrait être à la fin de cette leçon) |
Si vous n'êtes pas tout à fait certain d'avoir suivi correctement toutes les étapes de cette leçon, vous avez la possibilité de télécharger ici la version de procd.mdb exactement dans l'état ou elle devrait être à la fin de cette leçon.
| Lors de la prochaine leçon, nous allons continuer les critères de sélections dans les requêtes. Nous allons apprendre à demander plusieurs critères sur plusieurs champs, et utiliser les mots clés Et et Ou. Nous allons également voir comment exclure des enregistrements avec le mot-clé "Pas" (différent de : <>) |