Temps
nécessaire pour suivre cette leçon : Un gros quart d'heure
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 ProFormation.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
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 leur puissance phénoménale: Vous allez pouvoir extraire, trier et calculer vos données qui sont dans vos tables. |
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/XP).
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 êtes 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 a les autres champs plus bas. 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 : .
Vous le copiez ainsi dans la grille du bas :
.
Cliquez maintenant également deux fois dans NomClient. Vous obtenez 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 droite des champs déjà présents.
C'est votre première requête.
Une requête bien stupide puisqu'elle se contente d'extraire deux colonnes/champs
(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 dans les tables : .
Cliquez donc sur cette icone, vous devriez voir apparaître ceci :
.
Ce sont simplement les deux colonnes Prénom et Nom qui sont représentées, sans même être triées, simplement dans l'ordre dans lequel elles sont stockées dans la table sous-jacente.
Rappelez-vous : C'est la propriété Légende que nous avons étudié 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.
Nous allons à présent enregistrer 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 ProFormation.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), ou la petite croix en haut à droite.
Dans la liste des requêtes, vous visualisez maintenant cette seule et
unique requête:
("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. (Ces 2 assistants
ne sont disponibles sous cette forme qu'à partir d'Access 2000).
Absolument ! 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 n'en perdez aucune ! C'est juste un filtre !
Si vous regardez les étoiles avec une longue-vue, et que vous détruisez la longue vue, les étoiles n'ont pas disparu 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 regardez 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 mieux illustrer ce concept, nous allons faire une petite expérience amusante :
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 d'enregistrer 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 avec 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 l'enregistrement 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 :
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 vous déplacez jusque sur le mot Domaine,
dans la grille en bas) : .
Vous devriez obtenir 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. (Vous savez comment faire pour la remettre maintenant)
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 voyez
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 se sont interverties:
La requête est un filtre. Bon, ici, nous n'avons
pas filtré grand chose : Nous nous sommes contentés 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, les requêtes sont pourvues d'un mode création et un mode saisie de données. 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 répercutée dans les tables correspondantes, et vice-versa : Toute modification des données, suppression ou 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 ProFormation.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 à 9500. |
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 ProFormation.mdb exactement dans l'état ou elle devrait être à la fin de cette leçon.
Avez-vous une question technique
concernant cette leçon ? Cliquez
ici !
Une remarque sur cette leçon ? Un problème
? Une erreur ? une ambiguité ? Soyez
gentil de m'en informer