![]()
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 certains paramètres des requêtes : Nous avons notamment vu comment extraire des salaires plus élevés ou moins élevés qu'un tel cou tel chiffre. Nous avons également constaté que lorsqu'il s'agit d'extraire du texte, Access met automatiquement des guillemets. |
| Dans cette 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 : <>) |
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 oubliez l'accent, par contre, Access ne vous renverra rien du tout comme Cinéma... Contrairement aux majuscules, qui, elles, ne sont pas importantes. Attention donc !
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 cinema, et lancez la requête.
! Bien. C'était juste une remarque. 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 nous-mêmes, 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 allons avoir plein d'incohérences et d'amiguités dans notre travail.
Oui, vous avez tout à fait raison. Bon, ce que je voulais soulever, c'est que si vos données n'ont pas été entrées correctement, c'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 ??? elle va nous échapper celle-là... 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 avez 80 personnes, 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).
Sauvegardez cette requête sous R_CelebritePasChanson, fermez-là, et donnez-lui la description Domaine Pas "chanson"
Remarque : Pas est la même chose 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), et dans le 2ème cas, il faut demander tous les gens qui ne font pas de cinéma ET NON PLUS de la chanson. si vous mettez pas cinéma OU pas chanson, vous aurez tout le monde...
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 avoir 17 personnes. 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 sauvegardez-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 pour participer par exemple à un jeu télévisé du style "Les aventiriers 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 ?
Oui... 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 45 enregistrements de résultats, 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 saisi 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 ProCD, 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 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 voir comment extraire des parties de champs : Comment extraire l'ensemble des gens dont le nom commence par D ou F, comment extraire l'ensemble des prénoms qui se terminenent par "ine", ou encore les gens dont le nom contientn telle ou telle lettre, ou encore récupérer les gens dont le prénom comporte un certain nombre de lettres. Nous verrons également comment utiliser les signes < et > également avec du texte. |