Sommaire
- Création d'une requête
- Ajuster la taille de l'affichage des tables dans la requête
- Injection de champs dans une requête
- Visualisation du résultat d'une requête
- Enregistrement d'une requête
- Interaction des données entre les requêtes et les tables
- Suppression d'une requête
- Ordre des champs dans une requête
- Effacement d'un champ dans une requête
- Déplacement d'un champ dans une requête
Création d'une requête
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 :

Cliquez sur le bouton "Nouveau" :

Choisissez "Mode Création", et OK :

J'ai vu qu'il y avait des assistant à disposition. On ne les utilise pas ?
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 êtes maintenant dans votre requête en mode création :

Ajuster la taille de l'affichage des tables dans la requê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 :






Injection de champs dans une requête
Double-cliquez maintenant sur le champ Prenom :


C'est votre première requête.
Visualisation du résultat d'une 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 :

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.
Comment cela se fait-il que l'en-tête des colonnes soit Prénom et Nom, et pas Prenom et NomClient ?
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

Enregistrement d'une requête
Nous allons à présent enregistrer cette requête. Allez dans le menu Fichier/Enregistrer :
Tiens... Il ne demande pas ou on veut enregistrer cette requête ?
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
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:

Interaction des données entre les requêtes et les tables
Et si maintenant, je vais modifier des données dans T_Celebrite, les changements vont se répercuter dans la requête ?
Absolument ! Nous allons d'ailleurs faire le test :- Cliquez sur "Tables", et cliquez 2 fois sur T_Celebrite pour l'ouvrir en mode saisie de données :
- Ajoutez 2 "X" à Bonaparte :
- Fermez la table
- Cliquez sur Requêtes
- Cliquez 2 fois sur votre requête R_PremierTest pour l'ouvrir en mode saisie de données :
- Constatez que Bonaparte s'est bien transformé en BonaparteXX :
- Restez dans la requête, et cette fois, remplacez BonaparteXX Par Bonaparte YY
- Quittez la requête, et retournez dans la table T_Celebrite : Vous constaterez que maintenant, c'est BonaparteYY qui est indiqué ! Bien, profitez que vous êtes dans la table pour enlever purement et simplement les 2 YY de Bonaparte, histoire d'avoir à nouveau un nom correct.
OK OK OK ! Il y a une totale interaction entre les tables et les requêtes !
Je change dans la table - ça change dans la requête...
Je supprime un enregistrement dans la table, ça le supprime dans la requête, et inversement : Tout ce que je fais dans la requête est reporté dans la table !!! C'est génial, c'est totalement dynamique !
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".
Suppression d'une requête
Essayez : Supprimez carrément la requête R_PremierTest (Cliquez simplement sur R_PremierTest, et appuyez sur DEL de votre clavier

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 ?
Oui, oui, je crois que j'ai bien compris : La requête est juste un filtre, mais les données sont toujours stockées bien au chaud, dans l'étable
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 :
- Créez une nouvelle requête (revoyez le mode d'emploi en haut de cette page si vous avez oublié)
- Basez cette requête sur T_Celebrite (comme la dernière fois)
- Demandez le champ Prenom et NomClient (Aussi comme la dernière fois)
- Lancez cette requête en mode saisie de données
- Ajoutez ABC à Bonaparte :
- Quittez cette requête avec Fichier/Fermer
- A la question
, répondez NON
C'est une colle ça ! Je suppose que c'est toujours Bonaparte puisqu'on n'a pas enregistré la requête...
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...Oui, c'est vrai, alors, c'est BonaparteABC qui est dans la table ?
Je ne sais pas, qu'est ce que vous en pensez ?Je ne sais plus...
Allez voir dans la table.Ah oui ! Effectivement, c'est BonaparteABC... C'est troublant quand même...
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...) |
Cette fois c'est clair ! En fait, il ne faut ABSOLUMENT pas croire qu'on peut faire tout ce qu'on veut dans une requête en croyant être hors des tables !
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 :

Ordre des champs dans une requête
Si par exemple, maintenant, je voulais poser le champ NomClient entre Prenom et Domaine, comment faire ?
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) :

Effacement d'un champ dans une requête
Et si maintenant, je voulais effacer la colonne Domaine ?
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 :
Et si je voulais changer l'ordre des colonnes : Par exemple, je voudrais que Prenom
se trouve plutôt à droite de nom, comme ceci :
?
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 PaysOrigineDéplacement d'un champ dans une requête
Oui, c'est ce que nous avons vu un peu plus haut. Mais ça fait 2 opérations. On ne peut pas simplement le déplacer horizontalement sur la grille du bas ?
Si. Mais attention, il faut suivre scrupuleusement les instructions :Cliquez juste au-dessus de Prenom (la souris se transforme en flèche noire) :






Bon... Hem... On peut résumer ?
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. |
Avez-vous bien compris ?
|
Exercice
Pour cet exercice, vous n'aurez pas besoin de créer une nouvelle base de données. Vous allez directement travailler dans ProFormation.MDB
|
0 commentaires:
Enregistrer un commentaire