L'opérateur Comme dans les requêtes

Lorsque vous créez une requêtes, il arrive parfois de voiloir extraire des enregistrements dont le texte d'un champ contienne tel ou tel caractère. Par exemple, dans un champ NomClient, si vous mettez comme critère : Comme a*, vous obtiendrez tous les noms commençant par A ou a. Dans cette page, je vais vous montrer plus de subtilités.

Dans tous les exemples suivants, ce sera toujours le même principe : il vous faudra écrire comme critère Comme, suivi des astuces :

(Si vous possédez une version anglaise d'Access, remplacez Comme par Like)

Exemple 1

Trouver tous les gens dont la première lettre est un a et la dernière est un e

Comme "a*e"

Renverra :

Alexandre
Ae
aE

mais pas

Abbé
L'Alouette

Remarque : L'étoile peut se placer au début ou en fin de chaîne :

A* : tous les noms qui commencent par A
*E : tous les noms qui se terminent par E
*i* : tous les noms qui contiennent i

Exemple 2

Trouver tous les gens qui posséderaient une étoile dans leur nom de famille (Faut y aller pour trouver un exemple qui tienne la route... mais on va quand même essayer)

Comme "a[*]e"

Renverra :

antoi*e
a*********e

mais pas

Alexandre
Ae
aE

Remarque : Lorsqu'on cherche un caractère spécial telle que l'étoile ou un point d'interrogation, on le place entre crochets []

Exemple 3

Trouver tous les gens qui s'appellent Dupont, Dupond, Dupons... Enfin bref : dont la dernière lettre n'est pas connue

Comme "Dupon?"

Renverra :

Dupond
Dupont

mais pas

Dupon
Dupontiel

Remarque : Le ? peut se placer au milieu d'un mot : a?c renverra abc, azc, a5c etc.

Si vous recherchez un chiffre exclusivement, remplacez le ? par # :

Comme "Ref##Suisse"

Renverra :

Ref98Suisse
REF00SUISSE

mais pas

Réf98Suisse
RefA8Suisse
Ref33France

Comme vous l'avez constaté, on peut mettre plusieurs ? ou # l'un à côté de l'autre. Ainsi pour rechercher tous les articles dont la référence se compose de 3 chiffres suivis de 2 lettres :

Comme "###??"

Fera l'affaire.

Exemple 4

Trouver tous les gens qui s'appellent b, c ou D

Comme "[b-d]"

Renverra :

b
C
d

mais pas

a
Dupont

Cette mise entre crochets d'une lettre s'accompagne souvent d'une étoile.

Par exemple, si vous désirez la liste des gens dont le nom commence par B, C ou D :

Comme "[b-d]*"

A l'inverse, pour exclure les éléments d'une plage, on utilise le point d'exclamation. Admettons qu'on veuille la liste des gens qui ne s'appellent ni b ni c ni d :

Comme "[!b-d]"

Et donc, si on voulait la liste des gens dont le nom ne commence ni par X, ni Y ni Z :

Comme "[!x-z]*"

Conclusion

La combinaison des différentes possibilités permettent des extractions très puissantes :

Vérifions qu'aucun nom ne commence par un chiffre :
Comme "[!0-9]*"

Y a-t-il des noms comportant un espace ? :
Comme "* *"

Y a-t-il des noms composés (Trait d'union ou espace) ?
Comme "* *" ou Comme "*-*"

Y a-t-il des noms de 3 lettres ?
Comme "???"

Y a-t-il des noms commençant par 2 chiffres, contenant un tiret, et se terminant par une lettre non située entre a et m?
Comme "##*-*[!a-m]"

---