![]()
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 vu comment Access gère les données lorsque la base de données est posée sur un lecteur de réseau. Vous n'avez pu suivre cette leçon que si vous aviez à disposition 2 PC connectés en réseau ave Access installé sur chacun d'eux. Nous avons également abordé les différents problèmes relatiofs à la sécurité. Ne vous inquiétez pas si vous n'avez pas pu suivre cette leçon, c'était la seule qui nécessite 2 PC. |
| Dans cette leçon, nous allons aborder le 2ème grand objet d'Access : Les requêtes. Vous allez petit à petit vous rendre compte de la puissance phénoménale des requêtes : Vous allez pouvoir extraire, trier et calculer vos données qui sont dans vos tables avec une puissance et une souplesse incroyable ! |
Sans plus attendre, nous allons créer notre première requête. Cliquez sur
Requête :
. Si vous travaillez avec Access 97, regardez les onglets
horizontaux, ou il est également écrit "Requêtes", cliquez dessus, c'est
pareil.
Cliquez sur le bouton "Nouveau" :
. Avec Access 97, ce
bouton est situé plus à droite (Utilisateurs d'Access 97, ne vous en faites pas
trop, il n'y a pas beaucoup d'endroits ou ça change par rapport avec Access
2000).
Choisissez "Mode Création", et OK : 
Pas tout de suite. Nous allons d'abord voir la structure basique d'une requête, et, bien après, nous utiliserons ces assistants.
Cliquez une fois sur "T_Celebrite", puis sur "Ajouter", et enfin sur
"Fermer"
(Vous auriez pu cliquer deux fois sur T-Celebrite et ensuite sur Fermer, ce qui
revenait au même).
Vous vous retrouvez maintenant dans votre requête en mode création :
. Vous avez
en haut à gauche la représentation de votre table T_Celebrite. Mais elle est
incomplète : Voyez ici, nous n'apercevons que les champs Titre, NomClient,
Prenom et Domaine... Il y en a d'autres plus bas, des champs. Pour les
visualiser, vous allez agrandir la petite fenêtre T_Celebrite en cherchant la
double flèche, et en la glissant vers le bas :
. Le problème est que
vous ne pouvez pas descendre très bas... Vous êtes bloqué ici :
. Alors, nous allons
descendre toute la partie inférieure de la requête :
, ce qui va nous donner
plus d'espace
pour agrandir
la table :
. Et si ça ne suffit
pas, recommencez l'opération de manière à pouvoir visualiser l'ensemble des
champs de la table :
.
Double-cliquez maintenant sur le champ Prenom :
. Ca a pour résultat de
le copier dans la grille du bas :
. Cliquez maintenant également deux fois dans
NomClient. Vous avez maintenant ce résultat dans la grille du bas :
. En fait,
chaque fois que vous cliquez deux fois sur un champ, il se rajoute à la fin.
Bon, mainteannt, vous avez une première requête. Une requête bien stupide
puisqu'elle se contente d'extraire deux colonne (le prénom et le nom) des
célébrités, mais une requête quand même. Pour visualiser le résultat, c'est très
simple : C'est la même icone que lorsque vous êtes dans les tables en mode
création et que vous voulez aller en mode saisie de données :
. Cliquez donc sur cette
icone, et le résultat suivant doit apparaître :
.
Ce sont simplement les deux colonnes Prénom et Nom qui sont représentée, sans même être triées, simplement dans l'ordre dans lequel elles sont stockées dans la table T_Celebrite.
Rappelez-vous : C'est la propriété Légende que nous avons vu dans les tables, lors de la leçon 4.
Maintenant, pour revenir en mode création, il vous suffit, comme dans les
tables, de cliquer sur
. Allez-y, revenez en mode création.
Maintenant, nous allons sauvegarder cette requête. Allez dans le menu
Fichier/Enregistrer : 
Non. Tout comme les tables, les requêtes ne sont pas des fichiers à part,
mais des objets au sein même de ProCD.MDB. Vous avez nommé toutes vos tables en
commençant par T_, les requêtes vont donc toutes commencer par R_. Appelez cette
requête R_PremierTest
et cliquez sur OK.
Quittez cette requête (Fichier/Fermer)
Dans la liste des requêtes, vous avez maintenant cette requête unique :
("Créer une
requête en mode création" et "Créer une requête à l'aide de l'assistant" ne sont
pas des requêtes, mais des raccourcis pour créer des requêtes. D'ailleurs, si
vous travaillez avec Access 97, vous ne voyez pas ces deux choses).
Absolument, oui ! Nous allons d'ailleurs faire le test :
Oui. En fait, la requête n'est qu'un filtre sur la table. La requête en elle-même ne contient aucune donnée... Si vous supprimez la table T_Celebrite, vous perdez toutes vos données, mais si vous supprimez R_Premier Test,. vous ne perdez aucune donnée ! C'est juste un filtre ! Si vous regardez les étoiles avec une longue-vue, et que vous détruisez la longue vue, les étoiles ne sont pas disparues pour autant ! Eh bien, la requête, c'est comme une longue vue : C'est un filtre, une manière de regarder la table. Rien d'autre. Ici, le filtre est simplement : "Voir les prénoms et les noms".
Essayez : Supprimez carrément la requête R_PremierTest (Cliquez simplement
sur R_PremierTest, et appuyez sur DEl de votre clavier
, puis répondez oui :
)
La requête a disparu, mais allez dans les tables, et vous pouvez toujours cliquer deux fois dans T_Celebrite pour constater que tout est bien là. Vous saisissez ?
Je vois que vous avez de l'humour. En effet, quoi qu'il arrive, les données restent toujours dans les différentes tables, et nulle part ailleurs.
Pour bien illustrer ce concept, nous allons faire une petite expérience amusante :
, répondez NON Bien. A votre avis, dans T_Celebrite, y a-t-il Bonaparte, ou BonaparteABC ?
Ah ... Pourtant, dans les tables, nous avons clairement vu que les enregistrements se sauvegardent automatiquement, et que c'est juste la structure des tables qu'il est nécessaire de sauvegarder manuellement...
Je ne sais pas, qu'est ce que vous en pensez ?
Allez voir dans la table.
Encore une fois, une requête n'est qu'un filtre. Pour que vous compreniez parfaitement bien la manière de fonctionner des requêtes, je vais vous faire un parallèle avace la vie réelle :
| Dans Access | Dans la vie réelle |
| Je crée une nouvelle requête (Je crée un nouveau filtre) | Je chausse une paire de lunettes de soleil avec des verres teintés en jaune (Je met un filtre sur mes yeux) |
| Dans cette requête, je change Bonaparte en BonaparteABC (Je change les données) | Avec ma paire de lunettes jaune, je plante un clou dans un mur (Je change mon environnement) |
| Je quitte la requête, et je ne la sauvegarde pas (Je détruit mon filtre) | Je jette mes lunettes par terre et je les écrase (Je détruit mon filtre également) |
| Est-ce que les données ont été modifiées dans la table : OUI | Est-ce que le clou est toujours planté dans le mur : OUI (C'est franchement évident ici...) |
Exactement. Bien, maintenant, nous allons voir comment gérer un peu mieux les éléments de notre requête :
Créez une nouvelle requête, en mode création, basée sur T_Celebrite (Vous
savez comment faire maintenant). Placez les champ Prenom, Domaine et PaysOrigine
: ![]()
Alors, vous cliquez sur le champ NomClient dans votre liste de champs, et
vous le faites glisser jusque SUR le champ Domaine que vous avez mis en bas dans
la grille (Donc vous cliquez sur NomClient, vous laissez le doigt appuyé sur le
bouton gauche de la souris, et vous allez jusque sur le mot Domaine, dans la
grille en bas) :
Vous devriez avoir le résultat suivant :
.
Vous cliquez juste au dessus de Domaine, dans la grille (Votre souris devient
une grosse flèche noire) Et vous appuyez sur DEL (Suppr) de votre clavier :
. La colonne
Domaine a disparu. (Pour la remettre il suffit de la reprendre dans votre table
en haut de la grille évidemment)
Vous pouvez toujours effacer NomClient, et ensuite le faire reglisser depuis votre table jusque sur PaysOrigine, pour qu'il s'insère entre Prenom et PaysOrigine
Si. Mais attention, il faut suivre scrupuleusement les instructions :
Cliquez juste au-dessus de Prenom (la souris se transforme en flèche noire) :
, et dès
que vous lachez le bouton de la souris, la colonne devient noire :
. Maintenant,
au même endroit, votre souris, n'est plus une flèche verticale noire, mais est
redevenue une flèche normale :
. Vous allez cliquer a nouveau exactement à cet
endroit (donc juste au dessus de Prenom, comme dans le dessin), vous ne lachez
PAS le bouton gauche de la souris, et vous faites glisser la souris vers la
droite. Vous avec alors une sorte de petit rectangle grisé qui accompagne votre
souris :
. Vous allez continuer à déplacer ainsi votre souris jusqu'à ce
que vous vous trouviez entre NomClient et PaysOrigine. A ce moment, vous
remarquerez une grosse ligne noire au milieu des 2 colonnes :
C'est à ce moment que
vous lâcherez votre souris. Voilà : vos colonnes ont changé de place : ![]()
| La requête est donc un filtre. Bon, ici, nous n'avons pas filtré grand chose : Nous nous sommes contenté de placer quelques colonnes en provenance de T_Celebrite. Nous avons vu que nous pouvons choisir quelles colonnes nous désirons, et nous pouvons à tout moment en ajouter, les supprimer ou les déplacer. Comme dans les tables, il y a un mode création et un mode saisie de données. Nous avons vu que si nous détruisons une requête, ça n'affecte pas du tout les tables, ni les données qu'elles contiennent, par contre, toute modification des DONNEES effectuées dans les requêtes sera immédiatement reportée dans les tables correspondantes, et vice-versa : Toute modification des données ou suppression, ou même ajout de données dans les tables affectera les requêtes basées sur cette même table. |
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. |
|
Pour cet exercice, vous n'aurez pas besoin de créer une nouvelle base de données. Vous allez directement travailler dans ProCD.MDB
Il n'y a pas de téléchargement de solution. Au final vous ne devriez plus avoir aucune requête, et Napoléon devrait avoir son salaire à 0, comme au début. |
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 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. |