Temps
nécessaire pour suivre cette leçon : Une petite demie 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 continuer notre étude sur 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 : <>) |
Oui. Essayons : Créez une nouvelle requête basée sur T_Celebrite,
dans laquelle vous insérez le Prénom et le NomClient, ainsi que
le Domaine, et comme critère de domaine, vous écrivez chanson
ou cinéma : .
Dès que vous cliquez dans une autre case, Access installe
des guillemets ("chanson" Ou "cinéma").
Evidemment !!! C'est une DONNEE, dans les tables, vous avez bien écrit Cinéma, pas Cinema. Si vous ne placez pas l'accent, Access ne vous renverra rien du tout... Contrairement aux majuscules, qui, elles, ne sont pas importantes.
Testez la requête : Vous avez bien 52 enregistrements ?
Et, encore une fois, attention à la sasie des données... Parce qu'il nous manque Bruce Willis et Tommy Lee Jones !
Parce que eux, ont été classés sous Cinema, et pas Cinéma... Essayez : Remplacez "chanson" Ou "cinéma" par simplement cinema, et lancez la requête.
Bien. C'était juste une remarque, ne corrigez pas les accents sur ces 2 enregistrements.
Remettez "chanson" Ou "cinéma"et Enregistrez cette requête sous R_CelebriteChansonCinema, et quittez-là. Donnez-lui comme description : Domaine = "chanson" ou "cinéma"
Non : Nous allons rester cohérent avec la philosophie que je vous ai enseignée, même si parfois ça parait un peu contre-nature : Nous avons dit : PAS d'ACCENT dans les noms des objets, et cette requête ne doit pas déroger à la règle, sinon, nous risquons d'avoir avoir plein d'incohérences et d'amiguités dans notre travail.
Oui, vous avez tout à fait raison. Ce que je voulais mettre en lumière, c'est que si vos données n'ont pas été entrées correctement, il est très difficile ensuite de les extraire. Par exemple, qui vous dit qu'il n'y a pas ENCORE une autre célébrité dont le domaine est Sinéma par exemple... Ou cinnema, Ou cynéma ???
Vous ne pouvez jamais être certain de votre coup, en fait !
Oui. Créez une nouvelle requête, comme d'habitude, toujours basée sur T_Celebrite, avec le prénom, le nom et le domaine.
Critère de domaine : pas chanson
. Appuyez sur Enter,
ou cliquez dans une autre case, Access transforme votre critère en Pas
"chanson". Lancez la requête : Vous voyez 80 célébrités,
dont PERSONNE ne fait de chanson. (par déduction, nous pouvons déterminer
qu'il y a 20 personnes qui font de la chanson, puisque nous savons qu'il y a
100 personnes dans cette table).
Enregistrez cette requête sous R_CelebritePasChanson, fermez-là, et donnez-lui la description : Domaine Pas "chanson"
Remarque : Pas à la même signification que <>. Vous pouvez indifféremment écrire Pas cinéma ou <> cinéma
Non.
Non plus. En fait, ce serait Pas chanson et pas cinéma.
Essayez : Créez une nouvelle requête comme d'habitude, et demandez comme critère de Domaine Pas chanson et pas cinéma. Lancez la requête. Vous avez bien 45 enregistrements dont personne ne fait de cinéma ni de chanson ?
Oui. Dans le premier cas, comme il n'y a personne qui fait du cinéma ET de la chanson en même temps, il faut mettre OU (si vous mettez cinéma ET chanson, vous n'aurez personne, car personne ne faiut les deux à la fois), et dans le 2ème cas, il faut demander tous les gens qui ne font pas de cinéma ET PAS NON PLUS de la chanson. si vous mettez pas cinéma OU pas chanson, vous aurez tout le monde... Pas évident à comprendre du premier abord, mais c'est comme ça...
Enregistrez cette requête sous R_CelebriteNiCinemaNiChanson, fermez-là, et donnez-lui comme description Domaine Pas "cinéma" Et Pas "Chanson" .
Bien entendu. Créez une nouvelle requête comme d'habitude, avec
les champs Prénom, Nom, Domains, et Pays. Voici les critères :
Lancez cette requête, et vérifiez son résultat. Vous devriez voir 17 enregistrements. Bon, comme d'habitude, s'il y en a qui habitent la Frence, ou la Francce, ou qui font du Cinema sans accent, ils n'apparaîtront pas, mais c'est normal.
Fermez cette requête, et Enregistrez-là sous le nom R_CelebriteCinemaFrancais. Description : Domaine = "cinéma", PaysOrigine = "france"
Facile : Comme critère d'EtatCivil, vous écrivez "célibataire", et comme domaine, vous écrivez "sport"
Oui, c'est bien ce que vous avez demandé, non ?
Ah oui, je vous coupe : J'ai compris : Donc, c'est une liste de candidats désireux de participer (par exemple) à un jeu télévisé du style "Les aventuriers de Koh-Lanta", et vous avez besoin de personnes qui soient, comnent dire... "Bien physiquement", et vous voulez extraire tous les célibataires, mais aussi, dans la foulée tous les sportifs : C'est à dire qu'un célibataire non-sportif doit apparaître dans le résultat, ainsi que les sportifs qui ne sont pas célibataires, c'est ça ?
Créez une nouvelle requête comme d'habitude, et mettez les critères
suivants : . Vous
aurez les célibataires sportifs, et rien d'autre... (8 personnes). Mais
si vous mettez célibataire une ligne plus bas, comme ceci :
,
alors cette fois, vous aurez 36 enregistrements, et vous pourrez constater
que chaque personne est soit sportive, soit célibataire, soit les deux
:
. Et voilà
à quoi sert la ligne Ou :
Cette fois, nous avons vu que les critères des requêtes sont parfois un peu subtils : En effet, il faut savoir jongler avec les mots clés tels que ET, OU, PAS (<>), et parfois même utiliser 2 lignes de critères. Il n'est pas nécessaire d'écrire les guillemets autour des textes que l'on recherche, Access s'en charge. Et comme d'habitude, le fait qu'il y ait des erreurs de saisie dans notre table T_Celebrite nous empêche d'avoir des résultats parfait (par exemple à cause du fait que certaines célébrités font du Cinema à la place du cinéma). |
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. |
L'exercice consiste à créer quelques requêtes au sein même de votre base de données ProFormation, comme lors de la leçon précédente, chaque requête étant basée sur T_Celebrite, et devant comporter au moins le nom et le prénom:
Téléchargez la solution de l'exercice ici (qui n'est autre que ProFormation 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 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