formateur informatique

Exercice Access sur les requêtes paramétrées

Accueil  >  Bureautique  >  Access  >  Access Débutant  >  Exercice Access sur les requêtes paramétrées
Livres à télécharger


Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :


Inscription Newsletter    Abonner à Youtube    Vidéos astuces Instagram
Sujets que vous pourriez aussi aimer :


Exercice Access sur les requêtes paramétrées

Dans l'exercice précédent, nous avons appris à dompter les requêtes sélection. A ce titre, nous avons pu constater leurs souplesse et puissance. Elles peuvent agir sur une ou plusieurs tables et permettent de combiner ou recouper autant de critères que souhaité. Les extractions offertes sont ainsi affinées au plus juste pour manipuler les données conformément aux besoins.

Ici, nous abordons les requêtes paramétrées. Leur principe de construction est semblable. Mais ces requêtes sont dynamiques. Les emplacements des critères sont prédéfinis. En d'autres termes, les contraintes sont posées sur des champs explicitement désignés. Mais les contraintes elles-mêmes ne sont pas complètement spécifiées. Ainsi, au moment de l'exécution, la requête demande à l'utilisateur de préciser la valeur pour produire l'extraction correspondante.

Ce type de requête permet d'en regrouper d'innombrables dans une seule conception. Elles sont un excellent moyen de questionner la base de données pour obtenir une réponse précise à une demande spécifique à l'instant T. On retrouvera facilement un client par son nom ou un article par sa référence par exemple.

Base de données source
Au travers des manipulations sur les tables et de la découverte des requêtes sélection, nous avons fait évoluer notre base de données. Il s'agit de la récupérer pour poursuivre les travaux qui, au fil de l'apprentissage, conduiront à l'application finalisée de facturation des clients.
  • Télécharger la base clients-et-commandes-requetes-parametrees.accdb par clic sur ce lien,
  • Double cliquer sur le fichier téléchargé pour l'ouvrir dans Access,
  • Puis, cliquer sur le bouton Activer le contenu du bandeau de sécurité,
  • Dans le volet sur la gauche de l'écran, cliquer droit sur la requête R_clients_Femmes,
  • Dans le menu contextuel, choisir Mode création,
Requête sélection Access avec conditions recoupées sur plusieurs champs

Il s'agit de l'une des dernières requêtes que nous avons bâtie lors du précédent exercice sur les requêtes sélection. Des contraintes sont recoupées sur les champs Client_civilite et Client_dep. Elle permet d'extraire de la table Clients, toutes les femmes habitant dans les départements 04, 05 et 06. Mais finalement, ces conditions sont statiques. Cette requête ne permet pas de s'adapter pour répondre à un besoin précis voire urgent à l'instant T.

Requête paramétrée textuelle
Les requêtes paramétrées permettent de bâtir des outils pertinents pour l'entreprise. Elles n'offrent pas les mêmes résultats à chaque extraction. Au moment de l'exécution, Access demande à l'utilisateur de préciser la contrainte pourtant paramétrée sur un champ bien défini. Et c'est là que réside l'astuce. Plutôt que de définir une condition stricte sur un champ, nous allons émettre un critère qui ne sera pas reconnu par Access. La requête ne sachant pas comment agir, demande précision à l'utilisateur. C'est en quelque sorte une gestion intelligente des erreurs provoquées intentionnellement.
  • Cliquer sur la croix de l'onglet pour fermer la requête précédente,
  • Cliquer alors sur l'onglet Créer en haut de la fenêtre Access pour activer son ruban,
  • Dans la section Requêtes du ruban, cliquer sur le bouton Création de requête,
  • Dans la boîte de dialogue qui apparaît, sélectionner la table Clients,
  • Puis, cliquer sur le bouton Ajouter et sur le bouton Fermer,
Nous accédons ainsi à l'éditeur de requête Access, avec sa grille pour poser les contraintes et la représentation schématisée de la table.
  • Dans la représentation de la table, double cliquer sur le symbole de l'étoile (*) placé au-dessus de l'énumération des champs,
Cette action a pour effet de remplir la zone champ pour la première colonne de la grille de requête (Clients.*). Comme nous l'avons expliqué dans l'exercice précédent, à l'instar du langage Sql, le symbole de l'étoile représente tous les champs de la table. Nous choisissons donc d'afficher tous les enregistrements extraits avec le niveau de détail maximum. Un critère en revanche, se place sur un champ explicitement dissocié des autres. Et nous souhaitons que cette requête dynamique isole les informations d'un client, dont le nom est à renseigner à la volée.
  • Dans la représentation de la table, double cliquer sur le champ Client_nom,
Ce dernier s'ajoute à la suite dans la grille de requête.
  • Décocher sa case,
Comme nous l'avons appris, nous pouvons très bien poser une contrainte sur un champ, sans afficher ce dernier dans les résultats. C'est l'effet de cette case lorsqu'elle est décochée. De plus, ce champ est déjà inclus dans la sélection réalisée par le symbole de l'étoile.
  • Dans la zone Critères pour ce champ Client_nom, taper l'expression suivante : [Quel est le nom du client ?],
Les crochets sont le point le plus important dans l'élaboration d'une requête paramétrée. Dans la syntaxe Access, ils désignent un champ de table reconnu par son nom. A la place, nous y inscrivons une question explicite destinée à l'utilisateur. Comme Access ne reconnaîtra pas ce champ, il l'affichera pour demander précision. La réponse fournie sera exploitée comme critère d'extraction sur le champ Client_nom. C'est bien sur le lui en effet que la contrainte est posée.
  • Enregistrer la requête (CTRL + S) sous le nom R_Quel_Client,
A validation de la boîte de dialogue, la nouvelle requête s'implante dans la catégorie Requêtes, dans le volet des objets Access, sur la gauche de l'écran.

Requête Access paramétrée, critère à préciser sur champ au moment exécution

L'idée est la suivante : Un client appelle la société pour obtenir des informations sur une commande passée. L'opérateur lui demande son nom afin d'accéder à son dossier.
  • Dans le ruban Accueil, cliquer sur le bouton Affichage pour exécuter la requête,
Critère à définir dans boîte de dialogue pour requête paramétrée Access isolant un client par son nom

Comme vous le constatez, en guise de résultats, une petite boîte de dialogue apparaît. Son message est on ne peut plus explicite. Il s'agit de la question que nous avons paramétrée dans les crochets. Pour fournir la précision sur ce champ non reconnu, Access offre une zone de saisie en guise de réponse.
  • Taper le nom de client suivant : Hochon, par exemple,
  • Puis, cliquer sur le bouton Ok de la boîte de dialogue pour valider,
Extraire et isoler un client spécifique de la table Access par exécution de requête paramétrée

Ce nom est reconnu dans la table Clients pour le champ Client_nom. De fait, la requête Access restitue toutes les informations de champs attachées. Ces requêtes sont donc définitivement précieuses. Leurs résultats ne sont pas connus à l'avance. Elles permettent d'accéder aux informations spécifiques à préciser, pour répondre rapidement à un besoin précis à l'instant T.

Si vous fermez la requête pour l'exécuter de nouveau par double clic sur son nom dans le volet gauche, la même question est posée. Si vous tapez un autre nom, c'est un nouvel enregistrement lui correspondant qui est extrait. En outre, ces requêtes dynamiques sont précieuses pour optimiser leur nombre. Elles répondent en effet à une grande quantité de besoins.

Croiser les conditions
Le fonctionnement d'une requête paramétrée est identique à celui des requêtes sélection. Rien n'empêche donc de recouper les conditions dynamiques pour offrir des extractions affinées. Dans l'exemple qui suit, nous souhaitons créer une requête permettant d'extraire toutes les personnes d'un département, selon leur civilité. Pour des opérations commerciales pointues, il est peut-être intéressant de connaître toutes les femmes habitant le département du Var (83), par exemple. L'utilisateur doit donc préciser la civilité ainsi que le département. Mais souvenez-vous, le champ Client_dep recense des codes postaux, codés sur 5 chiffres et non sur 2. Mais Access offre la possibilité d'intégrer le symbole de l'étoile dans l'expression des critères. C'est ainsi que nous pouvons extraire toutes les informations commençant par le terme renseigné, soit le département ici.
  • Cliquer sur la croix de l'onglet pour fermer la requête R_Quel_Client,
  • En haut de la fenêtre Access, cliquer sur l'onglet Créer pour activer son ruban,
  • Dans la section Requêtes du ruban, cliquer sur le bouton Création de requête,
  • Dans la boîte de dialogue qui suit, choisir la table Clients,
  • Puis, cliquer sur le bouton Ajouter et sur le bouton Fermer,
  • Dans la représentation de la table, double cliquer sur le symbole de l'étoile (*),
  • Puis, double cliquer sur les champs Client_civilite et Client_dep,
Nous souhaitons certes restituer toutes les informations de champs. Les critères à recouper quant à eux, doivent être posés sur les champs Client_civilite et Client _dep. En revanche, nous ne souhaitons pas les afficher en double.
  • Décocher la case du champ Client_civilite et du champ Client_dep,
  • Dans la zone Critères du champ Client_civilite, ajouter la condition suivante : [Quelle civilité doit être extraite ?],
Comme précédemment donc, nous leurrons Access. En guise de champ, nous tapons une question destinée à l'utilisateur. Ce dernier devra répondre par Madame ou Monsieur.
  • Dans la zone Critères du champ Client_dep, taper l'expression suivante :
Comme [Quel département, ex : 04] & '*'

Nous demandons à l'opérateur de préciser l'information par la saisie d'un département, codé sur deux chiffres. Ces deux chiffres correspondent aux deux premiers numéros des cinq chiffres d'un code postal. Nous devons donc l'intégrer dans l'opérateur Access Comme et suffixer l'expression du symbole de l'étoile. Ainsi, nous recherchons tous les enregistrements pour lesquels le code postal commence par les deux chiffres renseignés par l'utilisateur. C'est la technique que nous avons apprise lors de l'exercice précédent sur la découverte des requêtes sélection. Mais contrairement à cette précédente mise en pratique, l'expression contient une partie dynamique. Il s'agit du paramètre entre crochets. Ce paramètre doit être concaténé à la partie statique par le Et commercial (&). L'expression statique est naturellement inscrite entre guillemets.

Expressions Access pour construire deux critères dynamiques paramétrés dans la requête

Comme nous avons défini deux critères dynamiques, la requête est susceptible de poser deux questions à la suite. C'est ce que nous proposons de vérifier.
  • Enregistrer la requête sous le nom : R_Quels_dep_et_civ,
  • Dans le ruban contextuel Créer, cliquer sur le bouton Exécuter,
Question boîte de dialogue requête Access paramétrée pour extraire informations à la demande

La première question se déclenche aussitôt. Il s'agit de préciser la condition sur le champ Client_civilite.
  • Taper le texte Monsieur par exemple puis valider par Ok,
Deuxième question enchaînée par requête paramétrée Access pour affiner données à extraire

Access ne reconnaissant pas le nom du champ mentionné dans le second critère, la deuxième question surgit immédiatement.
  • Taper le nombre 83 pour le département du Var,
  • Puis, valider par le bouton Ok,
Extraction dynamique requête paramétrée Access à double critère défini pendant exécution

Seuls les hommes pour le département du Var sont extraits, conformément aux demandes dynamiques recoupées. Il en résulte 5 enregistrements sur les 34 de départ. L'information pertinente est extraite selon les besoins.

Requête paramétrée numérique
Nous avons paramétré des requêtes dynamiques en imbriquant des conditions avec des opérateurs textuels, voués à l'origine à produire des critères statiques. De la même façon, nous pouvons exploiter les opérateurs numériques, notamment d'inégalité, pour offrir des extractions répondant aux conditions numériques, émises à l'instant T.
  • Fermer la requête R_Quels_dep_et_civ,
Sur la table Produits, nous souhaitons bâtir une requête capable d'isoler tous les enregistrements pour lesquels la popularité est supérieure à une valeur à définir et le stock inférieur à une valeur à préciser.
  • Dans le ruban Créer, cliquer sur le bouton Création de requête,
  • Dans la boîte de dialogue, sélectionner la table Produits,
  • Puis, cliquer sur le bouton Ajouter et sur le bouton Fermer,
  • Dans la représentation de la table, double cliquer sur le symbole de l'étoile,
  • Double cliquer ensuite sur les champs produit_vues et produit_stock,
  • Puis, décocher leur case respective,
Il s'agit en effet des champs sur lesquels nous souhaitons recouper les conditions dynamiques. Ils sont déjà intégrés dans la restitution par le symbole de l'étoile.
  • Dans la zone Critères du champ produit_vues, taper l'expression suivante :
>=[A partir de quel nb de vues ?]
  • Dans la zone Critères du champ produit_stock, taper l'expression suivante :
<=[Inférieur à quel stock ?]

Ces conditions dynamiques sont émises sur la même ligne. Donc, comme nous l'avons appris, elles doivent être recoupées, soit vérifiées ensemble. Nous demandons d'extraire tous les articles dont la popularité est au moins égale à la valeur saisie par l'utilisateur et inférieure ou égale à une autre valeur renseignée au moment de la demande.

Critères dynamiques et numériques paramétrés en conception de requête Access

Comme précédemment, deux boîtes de dialogue doivent donc s'enchaîner. C'est ce que nous proposons de constater.
  • Enregistrer la requête sous le nom : R_Vues_Stocks,
  • Puis, cliquer sur le bouton Exécuter dans le ruban contextuel Créer,
  • A la première invite, saisir le nombre 3500 par exemple, puis valider par Ok,
  • A la seconde invite, saisir la valeur 7 pour la limite supérieure du stock,
  • Puis, valider de nouveau par Ok,
Extraction dynamique des produits Access sur des critères définis au moment de la demande par requête paramétrée

Nous obtenons une extraction de 40 enregistrements. Selon les contraintes définies par l'opérateur, il s'agit des 40 articles à la fois les plus populaires et pour lesquels le stock est faible. Cette requête permet donc d'isoler rapidement toutes les références à réapprovisionner d'urgence.

Bien sûr, nous pouvons aussi produire des requêtes paramétrées multitables. Nous n'y manquerons pas, lorsque les tables Commandes et Detail_commandes offriront du contenu. Dans le prochain exercice, nous aborderons les requêtes de synthèse. Comme leur nom l'indique, ces dernières sont précieuses pour réaliser des études statistiques sur les données de la base Access.

 
Sur Facebook
Sur Youtube
Les livres
Contact
Mentions légales



Abonnement à la chaîne Youtube
Partager la formation
Partager sur Facebook
Partager sur Twitter
Partager sur LinkedIn