Sommaire
- Critères de requête : L'étoile *, Comme
- Critère de requête : L'étoile * et le mot clé OU
- Critère de requête Le point d'interrogation ? permet d'avoir un certain nombre de caractères
- Le signe plus grand que > appliqué à du texte
- Utilisation de Entre ... Et ... avec du texte
Critères de requête : L'étoile *, Comme
Puis-je obtenir les gens dont le nom de famille commence par la lettre D ?

Lancez la requête. Vous avez bien 10 enregistrements, tout le monde ayant le nom qui commence par D ?
Oui. Une fois de plus, la majuscule n'est pas utile. l'étoile * sert donc à dire "n'importe quoi" ?
C'est ça. Du moment que le nom commence par D, il peut y avoir un nombre quelconque de caractères après, ça prendra.Enregistrez cette requête sous R_CelebriteNomCommenceParD, et fermez-là. Donnez lui la description NomClient : Comme"d*"
Par exemple, si vous vouliez la liste de tous les gens dont le prénom se termine par la lettre e, comment feriez-vous ?
*e ?
Oui. Essayez. Créez une nouvelle requête comme d'habitude, demandez le Prénom et le Nom, et mettez *e comme critère de Prenom. Vous avez bien 22 enregistrement, tous les prénoms se terminant par e ?Oui.
Enregistrez cette nouvelle requête sous R_CelebritePrenomTermineParE, et description : Prenom : Comme"*e"Dans le même ordre d'idées, si je veux les gens dont le nom CONTIENT la lettre F quelque part dans leur nom, j'écrirais *f* ?
Oui. Faites-le : Créez une nouvelle requête qui va effectivement renvoyer ce résultat :
Cette petite étoile * est très intéressante, car comme vous vous en souvenez certainement, nous avons été ennuyé lors de précédentes leçons (Notamment les filtres sur les tables à la leçon 19) à cause de quelques erreurs de saisie.
Si nous voulions extraire les gens mariés, nous mettrions "Marié(e)" comme critère d'EtatCivil, Access va omettre les gens dont l'état civil est très exactement : "Marié"... Avec la petite étoile, nous allons demander les gens mar*.
Essayez : Créez une nouvelle requête comme d'habitude, avec comme critère d'état civil : mar*
Lancez la requête : Vous devez obtenir 55 enregistrements, et vers le bas de la liste, vous allez trouver... Vincent Lagaf qui est... Marié !. Nous pourrions ici très facilement corriger son état civil pour le mettre à Marié(e), mais laissons cette erreur exprès pour faire d'autres expériences de même type plus tard.
Enregistrez cette requête sous R_CelebriteVraimentMarie, avec la description EtatCivl : Comme "mar*"
Il y a d'autres applications : Par exemple, on pourrait avoir la liste des gens dont le nom est composé (Catherine Zeta-Jones, Louis De Funès, Patrick Poivre d'Arvord), comment feriez-vous ?
Je mettrais comme critère * * à NomClient ?
N'oubliez pas ceux qui ont un trait d'union !Critère de requête : L'étoile * et le mot clé OU
Ah oui ! * * Ou *-* alors ?
Exactement. Bon, eh bien je crois que vous êtes assez averti pour appliquer cet exemple tout seul : Créez une nouvelle requête qui extrait les noms composés, et Enregistrez-là sousR_CelebriteNomCompose, avec la description NomClient : Comme "* *" Ou Comme "*-*". Vérifiez bien que vous avez ce résultat :
Critère de requête Le point d'interrogation ? permet d'avoir un certain nombre de caractères
Et maintenant, peut-on compter le nombre de lettres. Par exemple, extraire les clients dont le prénom comporte 4 lettres ?
Oui, mais pas avec l'étoile * puisque celle-ci contient autant de lettres que possible. Il faut utiliser le point d'interrogation : ?Créez une nouvelle requête comme d'habitude, et comme critère de Prenom, écrivez : Comme "????".
ATTENTION : Vous ne pouvez PAS simplement écrire ????. Access ne va pas accepter. ATTENTION BIS : J'ai constaté que sous certaines version d'Access, pour des raisons que j'ignore, l'utilisation du point d'interrogation fait planter (tomber en panne) complètement Access. Aussi, il est nécessaire pour éviter celà d'encadrer les ? par des guillemets : "????"
Lancez la requête. Vous avez 14 personnes, dont le prénom comporte systématiquement 4 lettres. Enregistrez cette requête sous R_CelebritePrenom4Lettre (Eh oui : Pas de S à Lettre, même si c'est une faute d'orthographe manifeste.) Description : Prenom : Comme "????"
Et si je voulais les gens dont le prénom comporte 4 lettres, mais seulement ceux qui commencent par B ?
Comme "B???"D'accord. Comme je sais qu'il y a quelques fautes de frappe dans les noms des pays, si je voulais les français, plutôt que d'écrire "France" comme critère de Pays, j'écrirais "Fr?nce", et il me sortirais tous les gens de France et de Frence alors ?
Exactement. Essayez : Créez cette requête que vous me proposez. Enregistrez-là sous R_CelebriteFrancaisComplet. Description : PaysOrigine : "Fr?nce"".
Oui mais... Il y a encore quelqu'un, je me souviens, qui habite "Francce". Il n'apparait pas celui-là
Non, parce qu'il y a DEUX lettres CC... Vous n'avez qu'à écrire Comme "Fr?nce" Ou Comme "Fran??e"...Mouais... un peu compliqué...
Trop compliqué !Ecrivez simplement dans ce cas Comme "Fr*ce", ça résume tout d'un seul coup : Vous aurez tous les pays qui commencent par "Fr - Quelque chose - ce". Faites-le : Créez cette requête qui extrait tous les français de cette façon, Enregistrez-là sous R_CelebriteTousLesFrancaisSansException, avec la description : PaysOrigine : Comme "Fr*ce". (vous devriez avoir tous les "France", + Julia Roberts qui vient de "Francce" et Bourvil qui vient de "Frence") dans vos 51 enregistrements.
Le signe plus grand que > appliqué à du texte
Et si maintenant je désirais les gens dont le nom commence au minimum par V (Donc tous ceux qui commencent par V, W, X, Y ou Z), j'écriraisV* Ou W* Ou X* Ou Y* Ou Z* ?
Vous pourriez, mais c'est trop compliqué. Comme critère pour le nom, essayez d'écrire simplement >VIl accepte le signe plus grand que > même avec du texte ?
Exactement ! Essayez : Faites cette requête, exécutez-là, constatez que vous avez bien ces 5 enregistrements :
Il n'y a personne qui commence par V... C'est parce qu'on a écrit >V. On aurait dû écrire >=V pour l'avoir ?
Non. Il n'y est pas parce qu'il n'existe pas dans la table.En fait, par exemple, Van damme est plus grand que V. Il serait apparu s'il existait. En fait la toute petite différence qu'il y a entre >V et >=V, c'est que dans le cas de >V, s'il y avait quelqu'un dont le nom de famille est exactement V (ce qui est fortement improbable, vous en conviendrez...), il n'apparaitrait pas, tandis que dans le cas >=V, il apparaitrait.
Utilisation de Entre ... Et ... avec du texte
Mais alors on pourrait avoir la liste de tous les gens qui se trouvent alphabétiquement entre "Dupont" et "Smith" par exemple ?
Oui : Essayez : Créez une nouvelle requête, et dans le critère de NomClient, écrivez simplement : Entre Dupont et Smith. Ca marche. Bon, pour constater le résultat de manère probante, n'oubliez pas de trier les noms par ordre alphabétique une fois que vous avez lancé la requête.Normalement, le premier client sera Fernandel, et le dernier Alfred Sirven, tous les noms se situant alphabétiquement entre Dupont et Smith. Enregistrez cette requête sousR_CelebriteEntreDupontEtSmith, avec la description NomClient : Entre "Dupont" et "Smith"
Bon... Hem... On peut résumer ?
Cette fois, nous avons vu la très importante étoile *. E lle permet de rechercher des parties de texte au début, au milieu ou a la fin des champs. Nous avons également vu le point d'interrogation ? qui permet de représenter une seule lettre ou un seul chiffre, ou un seul caractère quelconque. Nous avons vu que leur utilisation est différente, et qu'il faut bien réfléchir avant d'utiliser l'un ou l'autre. Nous avons vu enfin qu'il est possible d'utiliser le signe >, <, >=, <= également avec du texte. |
Avez-vous bien compris ?
|
Exercice
Encore une fois, il ne s'agit pas de créer une nouvelle base de données, mais vous allez devoir créer quelques requêtes dans votre base de données ProFormation. Toutes les requêtes seront basées sur T_Celebrite, et devront contenir au minimum le Prénom et le NomClient.
|
0 commentaires:
Enregistrer un commentaire