Noir Blanc Souples Baskets Basses Coutures Sans Synthétique Primtex IbyYg6f7v

Leçon 27 : Requêtes : Les paramètres dans les critères avec les crochets [ et ]

Temps nécessaire pour suivre cette leçon : Entre une bonne demie heure et trois quarts 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 Camel Short Core ShortsBermudas Heavy Homme Superdry Cargo 0O8mvwNn

Aperçu de cette leçon

Kaki Utility VestesBlazers Pepe Femme Jeans MVqUzGSp
Dans cette leçon, nous allons voir comment une seule requête peut contenir plusieurs résultats, en utilisant ce qu'on appelle un paramètre variable. Tight Noir Homme Jeans Lenght 00gms8l603 Calvin Leggings Full Klein 4jcALS35Rq

Sommaire Camel Short Core ShortsBermudas Heavy Homme Superdry Cargo 0O8mvwNn

  1. Utilisation des crochets [ ]
  2. Utilisation de 2 paramètres variables avec OU dans un seul champ
    Hunnu In Dream Green Marron Cuissardes Femme 8nmO0wvN Camel Short Core ShortsBermudas Heavy Homme Superdry Cargo 0O8mvwNn
  3. Signe plus petit que < associé à un paramètre variable entre crochets
  4. Mélange de paramètres variables et fixes
  5. Paramètres variables dans plusieurs champs différents Camel Short Core ShortsBermudas Heavy Homme Superdry Cargo 0O8mvwNn
  6. Paramètres variables associé à l'étoile *
  7. Le paramètre entre crochets et l'étoile * aident à pallier aux problèmes d'orthographe
    ShortsBermudas Deeluxe Deeluxe State Marine State Femme fgy6b7
  8. Camel Short Core ShortsBermudas Heavy Homme Superdry Cargo 0O8mvwNn
Camel Short Core ShortsBermudas Heavy Homme Superdry Cargo 0O8mvwNn

Admettons que je veuille une requête qui m'extrait tous les clients d'Allemagne : Je sais comment faire : Je demande Allemagne comme critère de Pays. Si je veux les clients Belges, je demande Belgique, etc. Mais si je voulais une requête par pays, je devrais créer 216 requêtes, soit une requête par pays ? Pas très pratique...


Utilisation des crochets [ ]Twill Chemise Ciel Bleu Farmer Chemises Cormor Gentleman Manches Homme Longues hrCtsdQ

C'est justement le sujet de ce cours. Créez une nouvelle requête, comme d'habitude, avec le prénom, le nom et le pays. Comme critère de PaysOrigine, écrivez [Tralala] (Tralala entre crochets: le crochet s'obtient en appuyant sur la touche ALT GR (touche à droite de la barre d'espacement) et è : : (Pour refermer le crochet, c'est )

ATTENTION, donc, ce sont des CROCHETSBaskets Basses Superstar Adidas BlancNoir Originals OiPkXuZ, PAS des parenthèses !

C'est quoi, Tralala ?

Justement, ça ne veut rien dire.

Lancez la requête : . Effectivement, Access vous demande également : "C'est quoi, ça, Tralala ? Jamais entendu parler !

Camel Short Core ShortsBermudas Heavy Homme Superdry Cargo 0O8mvwNn

". Mais il est plus poli : Il vous dit "Entrez la valeur du paramètre", Tralala. Dans la zone blanche, précisez que Tralala est égal à Suisse : . Cliquez sur OK.

Comme vous avez précisé que Tralala = Suisse (comme critère de Pays), la requête vous renvoie les suisses : La Jeans Effiloché Modeuse Femme Skinny Bleu wnO0m8vN. Revenez en mode création, et RELANCEZ immédiatement une deuxième fois la requête. A nouveau, cette boîte de dialogue apparaît. Cette fois, répondez france , et cliquez sur OK. Cette fois, ce sont tous les français qui apparaissent.

Ne fermez pas cette requête, mais Enregistrez-là sous R_CelebriteParametrePaysTralala

D'accord. Donc, à chaque lancement de la requête, il va m'être demandé quel pays je désire, et ce pays va être placé à la place de [Tralala], ce qui fait que je n'ai besoin que d'une requête au lieu d'une requête par pays, c'est génial ! Au dernier moment, je précise mon pays, et hop, l'affaire est bouclée...

Exactement. Tralala est ce qu'on appelle une variable, ou un paramètre.

Et entre crochets, finalement je met ce que je veux : [Tralala], [Boudin blanc] ou [Patin à roulettes], de toute façon, je vais devoir préciser le pays tout pareil...Marron André André Boots Boots Femme Femme Femme Marron André Myriam Boots Myriam Myriam uOXTPZik

Oui. D'ailleurs, [Tralala] ou [Boudin blanc], c'est pas terrible. Soyons plus élégant : Ecrivez plutôt : [Entrez le pays désiré] : . Lancez la requête, et essayez Etats-Unis :

Excellent ! Comme ça, on a vraiment l'impression qu'il nous pose la question... C'est évidemment plus convivial que [Tralala] !

Eh oui...

Par contre, il faut vraiment faire super-attention à l'orthographe... Si on oublie le trait d'union entre Etats et Unis, je suppose que ça ne marche plus ?Camel Short Core ShortsBermudas Heavy Homme Superdry Cargo 0O8mvwNn

Effectivement ! C'est exactement comme si vous écriviez "Etats Unis" directement comme critère de PaysOrigine, ça ne marchera pas non plus parce que vous avez oublié le tiret.

On ne peut pas dans la boîte de dialogue "Entrez la valeur du paramètre" avoir la liste déroulante des pays possibles pour éviter les fautes ?

Non. Pas maintenant. C'est possible, mais c'est vraiment plus compliqué. Il faudra attendre d'être dans les formulaires très avancés pour ça !

Sacs Simons Bandoulière Femme Cognac Fuchsia 9DEIH2

Enregistrez cette requête sous R_CelebritePaysParametre


Camel Short Core ShortsBermudas Heavy Homme Superdry Cargo 0O8mvwNn

Utilisation de 2 paramètres variables avec OU dans un seul champ

Peut-on demander la liste de tous les gens de deux pays : Belgique et Suisse par exemple

Oui, puisque les paramètres entre crochets se comportent exactement comme des critères normaux : [Entrez le 1er pays] Ou [Entrez le 2ème pays] : . Lancez la requête. à la question "Entrez le 1er pays", répondez belgique, et cliquez sur OK. Il vous pose alors la 2ème question : "Entrez le 2ème pays", répondez suisse, et cliquez à nouveau sur OK. Le résultat comprend tous les gens de Belgique et de Suisse

Enregistrez cette requête sous R_CelebriteParametre2PaysCamel Short Core ShortsBermudas Heavy Homme Superdry Cargo 0O8mvwNn , quittez cette requête, et placez les descriptions suivantes :

C 'est vraiment exactement comme des critères normaux finalement, ces fameux paramètres ?


Made T Courtes Femme Bleu Tulum shirts Bio Manches In yO0v8nPmNw

Signe plus petit que < associé à un paramètre variable entre crochets

Mais oui, exactement. Par exemple, admettons que notre table T_Celebrite soit en fait une table de candidats pour une agence de travail temporaire :Vous avez alors souvent des clients à la recherche de personnel qui vous téléphonent, et généralement vous demandent : "J'ai besoin de quelqu'un pour m'aider, mais mon budget maximum est de X francs". X francs étant variable... Vous n'allez tout de même pas vous amuser à créer 50 requêtes avec la liste des gens sont le salaire est au maximum de 10000 francs, de 12000 francs, de 15000 francs, etc. Non ! Vous allez créer une requête paramétrée avec comme paramètre de salaire : <[Quel plafond salarial ?] .

Essayez, créez une nouvelle requête comme d'habitude, basée sur T_Celebrite, avec le prénom, le nom et le salaire, et comme critère de salaire : . Lancez la requête. à la question "Quel plafond salarial", répondez 6000, et cliquez sur OK : Voilà, vous avez la liste des gens dont le salaire demandé est inférieur à 6000 francs... Et donc, comme toujours, chaque fois que vous allez lancer la requête, vous pourrez entrer une valeurdifférente.

Enregistrez cette requête sous R_CelebriteParametreSalairePlafondVariable

Camel Short Core ShortsBermudas Heavy Homme Superdry Cargo 0O8mvwNn

Ca marche, par contre, il me donne toujours ces fameux salaires inconnus à 0 francs... On peut les éliminer ?


Gabor Gabor Baskets Bleu Femme Baskets Basses Femme Basses Bleu 9Y2IHWED

Mélange de paramètres variables et fixes

Bien sûr. Nous allons mélanger un critère fixe et un critère variable : essayez Pas 0 Et <[Quel plafond salarial ?] : . Lancez la requête, et écrivez encore 6000 : Vous obtenez la liste de tous les gens qui gagnent moins de 6000 francs par mois, mais en excluant les salaires inconnus. On peut d'ailleurs en plus les trier par ordre croissant pour clarifier la liste :

Faites Fichier/Enregistrer Sous : Espadrilles Rondinaud Rondinaud Rondinaud Femme Espadrilles Lacara Lacara Marine Femme Lacara Marine R4Aj3q5LR_CelebriteParametreSalairePlafondVariableSans0

Et si le client dit "J'ai besoin d'un MENUISIER que je peux payer maximum 6000 francs par mois" ?

Bon, dans notre table des célébrités, nous n'avons pas tellement de menuisiers, mais nous avons un champ domaine qui va tout à fait convenir. Donc, si nous voulons l'ensemble des célébrités qui font de la chanson par exemple, avec un plafond salarial variable, il faudrait ajouter le champ Domaine, et lui mettre chanson comme critère : Essayez :


Paramètres variables dans plusieurs champs différentsOriginals Basses Baskets Supercourt Chaussure RoseBlanc Femme Adidas K13luFcJT

AH OK ! Et évidemment, si à la place de chanson, le met [Entrez le métier voulu], il va me demander d'entrer quel métier je veux, et ensuite, il va me demander quel plafond salarial je désire, et alors j'aurai un résultat doublement personnalisé !

Vous avez tout compris. Essayez : . Lancez la requête : Il vous demande d'abord quel métier vous voulez (parce que c'est le plus à gauche des 2 critères), répondez chanson et cliquez sur OK. Il vous demande ensuite le plafond salarial, répondez 6000, et cliquez sur OK. Vous obtenez alors l'ensemble des 4 personnes qui font de la chanson et dont le salaire est connu et inférieur à 6000 francs.

Faites Fichier/Enregistrer sous : R_CelebriteParametreDomaineEtSalaireChemisesChemisiers Polkadot Femme Stretch Broadcloth Marine Gant 4R53jqAL, et fermez-là. Donnez les descriptions adéquates à ces dernières requêtes :


Paramètres variables associé à l'étoile *
Camel Short Core ShortsBermudas Heavy Homme Superdry Cargo 0O8mvwNn Camel Short Core ShortsBermudas Heavy Homme Superdry Cargo 0O8mvwNn Camel Short Core ShortsBermudas Heavy Homme Superdry Cargo 0O8mvwNn Camel Short Core ShortsBermudas Heavy Homme Superdry Cargo 0O8mvwNn Camel Short Core ShortsBermudas Heavy Homme Superdry Cargo 0O8mvwNn Camel Short Core ShortsBermudas Heavy Homme Superdry Cargo 0O8mvwNn

Dans le même ordre d'idée, peut-on avec une seule requête demander l'ensemble des gens dont le prénom commence par telle ou telle lettre ?

Bien sûr. Pour éviter d'avoir une requête avec tous les gens qui commencent par A, une autre requête pour tous les gens qui commencent par B, etc. jusqu'à Z, créez une nouvelle requête comme d'habitude avec le prénom et le nom. Comme critère de nom, si vous écrivez a* , Access va transformer ça en Comme "a*" (Leçon 24), et vous renvoyer les gens qui commencent par la lettre A... Donc, si vous écrivez [Quelle lettre de début ?]*Sandales W3x pieds Femme Et Costacabana Pikolinos Nu Noir 3j54ARLqc , on pourrait s'attendre à ce qu'il nous demande une lettre, vous écrivez par exemple D, et il nous renvoie tous les gens qui commencent par D. Bon, il se trouve que ce n'est pas si simple : En fait, si vous écrivez [Quelle lettre de début ?]* ou même Comme "[Quelle lettre de début ?]"* , ça ne marche pas. En fait il faut écrire exactement ceci :

Comme [Quelle lettre de début ?] & "*" pour que ça marche. Essayez : Lancez la requête, et lorsqu'il vous demande Quelle lettre de début ? répondez d , et cliquez sur OK. Vous voici avec la liste de tous les gens dont le nom commence par D.. En fait, vous auriez même pu écrire DE par exemple lors de la demande, et vous auriez obtenu la liste de tous les gens qui commencent par DE. Essayez.

Enregistrez cette requête sous R_CelebriteParametreNomCommenceParQuelqueChose

Et si on voulait que ça se TERMINE par une certaine lettre ?

Comme "*" & [Quelle lettre de fin ?]

D'accord. C'est quoi ce 10k All Heather Homme Day Black Manteaux Billabong uK3T15lcFJ& ?

Nous verrons ça ultérieurement en détail. Juste pour résumer en un mot : c'est un signe de concaténation (pour mettre ensemble des textes bout à bout).


Camel Short Core ShortsBermudas Heavy Homme Superdry Cargo 0O8mvwNn

Le paramètre entre crochets et l'étoile * aident à pallier aux problèmes d'orthographe

Et si je voulais l'ensemble des gens qui CONTIENNENT telle ou telle lettre n'importe ou dans leur nom ?

Comme "*" & [Donnez une partie du nom] & "*" . Essayez : . Lancez la requête, et lors de la demande de paramètre, écrivez DE, et OK. Le résultat donne tous les gens qui contiennent DE quelque part dans leur nom.

C'est une requête très intéressante si vous n'êtes pas certain de connaître l'orthographe du nom d'une personne : Par exemple, vous recherchez Louis De Funès, mais vous ne savez plus si De Funès s'écrit De Funès, ou Defunès, Defunes ou De Funés... Lancez cette requête, et à la question Donnez une partie du nom, répondez fun , et OK : Voici la liste de tous les gens qui contiennent fun dans leur nom, et donc De Funès (dans notre cas, c'est d'ailleurs le seul, ce qui facilite bien la tâche).

Camel Short Core ShortsBermudas Heavy Homme Superdry Cargo 0O8mvwNn

Faites Fichier/Enregistrer sous : R_CelebriteParametreNomContientTexte, et fermez-là. Donnez des descriptions à ces 2 nouvelles reqêtes :

Rosie Femme Nu Clarks Sandales MarronDoré pieds Bay Et SzGUqMVp

Bon... Hem... On peut résumer ?

Les paramètres entre crochets [ et ] permettent de créer une seule requête qui renvoie une foule de résultats différents, puisque c'est l'utilisateur qui exécute la requête qui doit, au dernier moment, préciser sa demande. Cette astuce permet d'éviter la création de dizaines ou même de centaines de requêtes différentes.

Avez-vous bien compris ?Porté Sac Femme Cherry Vert Paris Sacs Bandoulière Irene Croisé Clair ARj54L

  1. Les crochets sont-ils l'équivalent des parenthèses dans le cadre de requêtes paramétrées ?
    a. Oui
    Camel Short Core ShortsBermudas Heavy Homme Superdry Cargo 0O8mvwNn b. Non***

  2. Je crée une requête basée sur T_Celebrite avec le Prenom et le NomClient. Comme paramètre de NomClient, je voudrais que ce soit l'utilisateur qui précise quel nom il veut. Quelle est la meilleure solution ?:
    a. [NomClient]
    b. (NomClient)
    c. [Quel nom désirez-vous ?] ***Nu BleuOrange Emma Femme Et pieds Astrid Go Sandales JcTlK3F1
    d. (Quel nom désirez-vous)

  3. Je crée une requête basée sur T_Celebrite avec le Prenom, le NomClient et la date de naissance. Je voudrais l'ensemble des gens nés entre telle ou telle date de manière dynamique. Qu'est-ce que je met comme critère dans DateNaissance ?
    a. Entre [Date de début] Et [Date de fin] ***
    b. Entre Date de début Et Date de fin
    c. Entre >=DateNaissance et <=DateNaissance
    d. [Date de début] Et [Date de fin]

  4. Je crée une requête basée sur T_Celebrite avec le Prenom, le NomClient et la remarque. Je voudrais pouvoir entrer a chaque lancement de la requête une partie de remarque (par exemple, si j'écris président, il doit me renvoyer tous les gens qui possèdent le mot "président" dans la remarque). Que met-je comme critère de remarque ? Camel Short Core ShortsBermudas Heavy Homme Superdry Cargo 0O8mvwNn
    a. [Entrez une partie de remarque]
    b. "*"[Entrez une partie de remarque]"*"
    c. *[Entrez une partie de remarque]*
    d. Comme "*" & [Entrez une partie de remarque] & "*" ***

    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

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.

  1. Créez une requête qui demande dynamiquement l'état civil
    Enregistrez cette requête sous R_CelebriteDynamiqueEtatCivil
    Si vous demandez Célibataire, vous devriez obtenir 27 résultats
  2. Créez une requête qui demande dynamiquement une fourchette de salaire (le plus grand salaire et le plus petit afin d'afficher tous les salaires qui sont situés entre ces limites, limites incluses)
    Enregistrez cette requête sous R_CelebriteDynamiqueFourchetteSalaireCamel Short Core ShortsBermudas Heavy Homme Superdry Cargo 0O8mvwNn
    Si vous demandez les salaires entre 10000 et 15000, vous devriez obtenir 24 résultats
  3. Créez une requête qui demande dynamiquement 2 domaines d'activité, ainsi que 2 pays d'origine (De façon à ce que si on lance la requête on obtienne par exemple tous les Politique et les Chanson qui sont soit Belges soit Allemands)
    Enregistrez cette requête sous R_CelebriteDynamique2Pays2Domaine
    Si vous demandez Belgique ou France et Politique ou chanson, vous devriez obtenir 15 résultats Camel Short Core ShortsBermudas Heavy Homme Superdry Cargo 0O8mvwNn
  4. Créez une requête qui demande dynamiquement la (ou les) première(s) lettre(s) du prénom
    Enregistrez cette requête sous R_CelebriteDynamiquePrenomCommencePar
    Si vous demandez LI, vous devriez obtenir 1 résultat (Liane Foly)
    Camel Short Core ShortsBermudas Heavy Homme Superdry Cargo 0O8mvwNn

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