formateur informatique

Les expressions régulières dans les requêtes Access

Accueil  >  Bureautique  >  Access  >  Access Astuces  >  Les expressions régulières dans les requêtes Access
Livres à télécharger


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


    Inscription Newsletter
Sujets que vous pourriez aussi aimer :


Requêtes et expressions régulières

Les expressions régulières sont généralement des techniques de programmation destinées à isoler des enregistrements contenant des séquences remarquables dans leurs champs. On les exploite pour trouver tout ce qui se rapproche de la recherche fournie, sachant qu'aucun champ ne contient précisément des expressions précises et identiques. Cette nouvelle astuce Access montre comment enclencher ces expressions régulières avec les requêtes.



Base de données source
Nous proposons d'étayer ces travaux à partir d'une base existante offrant des données à triturer. Comme l'indique le volet de navigation sur la gauche de l'écran, cette base de données n'est constituée que d'une seule table.
  • Double cliquer sur cette table Produits pour l'afficher en mode feuille de données,
Table Access des articles en vente pour recherches

Cette table archive des articles vestimentaires destinés à la vente. Ils sont essentiellement décrits par leur champ produit_nom.

Fragments de texte
Pour débuter la découverte, nous proposons de réaliser des recherches sur des fragments à contenir. Et pour cela, nous avons besoin d'une requête.
  • Fermer la table Produits en cliquant sur la croix de son onglet,
  • 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, sélectionner la table Produits,
  • Dès lors, cliquer sur le bouton Ajouter puis sur le bouton Fermer,
Dans l'éditeur de requête, la table apparaît dans une représentation schématisée avec l'énumération de tous ses champs.
  • Cliquer sur le tout premier champ (produit_ref) pour le sélectionner,
  • Tout en maintenant la touche Maj (Shift) enfoncée, cliquer sur le tout dernier (produit_code),
Cette technique permet de réunir tous les champs de la table dans une même sélection.
  • Dès lors, glisser la sélection vers le bas, sur la grille de requête,
Ajouter les champs de table Access sur la grille de requête pour effectuer des recherches



De cette manière, nous incluons tous les champs à restituer pour les extractions à venir.
  • Enregistrer la requête sous le nom : R_Produits,
Les séquences remarquables d'une expression régulière s'inscrivent toujours entre crochets.
  • Dans la zone Critères du champ Produit_nom, inscrire l'expression suivante :
Comme '[P-V]*'

L'opérateur Comme est utilisé pour extraire tout ce qui ressemble à ce qui suit dans l'expression. En l'occurrence ici, nous cherchons à trouver les enregistrements commençant sous la forme désignée entre crochets, en atteste la présence de l'astérisque en suffixe. Et grâce à la séquence des deux lettres P et V séparées d'un tiret, nous cherchons spécifiquement tous les enregistrements pour lesquels la désignation débute par une lettre se situant entre la lettre P et la lettre V.
  • A gauche du ruban Accueil, cliquer sur la flèche du bouton Affichage,
  • Dans la liste, choisir le mode Feuille de données,
La table Produits compte 244 enregistrements. Si vous consultez la petite barre de navigation en bas de la fenêtre Access, vous constatez qu'il n'en subsiste plus que 143 sous l'action de ce filtre. Et si vous scrutez attentivement les désignations, tous les enregistrements pour lesquels la première lettre n'est pas un P, Q, R, S, T ou V, sont exclus.
  • A gauche du ruban Accueil, cliquer sur la flèche du bouton Affichage,
  • Dans les propositions, choisir le mode création,
Nous revenons ainsi dans la vue en conception de la requête.
  • Dans la zone Critères du champ produit_nom, adapter la précédente syntaxe comme suit :
Comme '[!P-V]*'

Nous ajoutons simplement un point d'exclamation devant la séquence remarquable de l'expression régulière. Ce point d'exclamation fait office de négation. En d'autres termes, il doit nous permettre d'extraire tous les enregistrements pour lesquels la désignation ne commence pas par la lettre P, Q, R, S, T ou V.
  • Enregistrer les modifications de la requête (CTRL + S) puis l'exécuter,
Extraire les enregistrements ne commençant pas par certaines lettres grâce aux expressions régulières dans une requête Access

Tout d'abord, en consultant la barre de navigation, vous constatez que seuls les 101 enregistrements manquants dans la précédente requête semblent avoir été extraits. Et si vous consultez attentivement les désignations, vous constatez en effet qu'aucune ne commence par les lettres proscrites dans la séquence de l'expression régulière.
  • Revenir en mode conception de la requête,
Par déclinaison, nous pouvons tenter les expressions régulières suivantes :

Comme 'E[ns]*', Comme 'E[!ns]*' et Comme 'E[n-t]*'.

La première permet d'extraire les enregistrements commençant nécessairement par la lettre E et suivie de la lettre N ou S. Si vous réalisez une extraction, il en résulte uniquement les ensembles et escarpins. La deuxième permet d'extraire les enregistrements commençant par un E mais cette lettre ne doit être suivie ni d'un N ni d'un S. Il en résulte les étoles. La dernière permet d'extraire les enregistrements qui commencent par un E suivi par une lettre comprise entre la N et la T. Il en résulte les ensembles, les étoles et les escarpins.

Extraction Access par requête exploitant les expressions régulières sur des séquences de lettres



Séquences numériques remarquables
Toujours par déclinaison, nous allons maintenant comprendre comment extraire des enregistrements possédant des séquences remarquables de chiffres. Et très vite, nous allons pouvoir jauger l'intérêt d'une telle technique.
  • Dans la zone Critères du champ produit_nom, inscrire l'expression suivante :
Comme '*[0-9]'

Cette expression régulière doit permettre d'extraire tous les enregistrements pour lesquels la désignation se termine par un chiffre compris entre 0 et 9.
  • Enregistrer la requête puis l'exécuter,
Extraire par requête Access toutes les lignes se terminant par un chiffre ou par un nombre

Il en résulte effectivement les vêtements accompagnés d'une indication sur la taille. Il subsiste 120 enregistrements sur les 244 de départ.

Toujours et encore par déclinaison, cette expression régulière : Comme '*[0-9][0-9]', permet de ne conserver que les enregistrements pour lesquels la désignation se termine nécessairement par deux chiffres. Si vous exécutez la requête, l'extraction s'affine à 113 résultats au lieu de 120.

 
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