|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre Expert
![]() Inscription : août 2006 Messages : 1 435 ![]() |
Bonjour,
Je désire retourner les enregistrement qui contiennent le mot BCD mais pas ceux qui contiennent ABCD ou BCD3 Ce critère fonctionne mais n'y a-t-il pas plus court ? Code :
|
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Diem VOVivre Inscription : avril 2006 Messages : 2 644 ![]() |
salut helas,
> champ comme "*bcd*" et champ soustrait de "bcd" n'est pas comme "*[A-Z;0-9]*" ??? > il est aussi possible de faire une fonction à base d'un regex (puisqu'il n'existe pas nativement sous access). je doute que cela soit plus rapide mais c'est plus flexible. le 'motif' serait un truc de ce genre: "\W*BCD\W*" : ne contenant pas (0 ou plusieurs) chiffre ou lettre (a-z) avant "BCD" ni après (et bien sur contenant BCD). je te sais suffisamment compétent pour ne pas te mâcher le travail :p, mais si tu as besoin de précision, je te fournirais les informations nécessaires. |
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() Inscription : août 2006 Messages : 1 435 ![]() |
Le but premier est de modifier le nom d'une table ou d'une requete dans ma base qui comprend des centaines de tables, de requetes, de formulaires.
Je récupère les tables, les requetes, le code des formulaires, la source des formulaires, idem pour les états,les contrôles ayant une source et bien sur les modules. Je veux donc dans ma requete sur l'un de ces éléments détecter ma table à remplacer. La requête doit être précise pour ne pas détecter la table tbParametres2 (par exemple) alors que je cherche précisement la table tbParametres au milieu d'un code SQL, d'un module ou autre. Donc mon critère fonctionne mais je me demandais s'il n'y avait pas une façon, un caractère générique ou autre qui simplifierait mon critère . Lorsque je mets [!A-Z;!0-9] cela exclut le caractère ou le chiffre avant ou après le nom de la table mais celui-ci doit exister. Ce qu'il aurait fallu c'est [!A-Z;!0-9;Null] mais cela ne fonctionne pas. S'il n'y a pas plus simple, je me contenterai de mon critère. Merci Vodiem pour ta réponse. |
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() Diem VOVivre Inscription : avril 2006 Messages : 2 644 ![]() |
j'avais compris que ton pb problème venait de l'existence obligatoire du caractère, d'où ta décomposition.
je crains qu'avec un like tu ne peux que reformuler l'expression. le regex, lui, peut être utilisé comme un like super amélioré : le 'motif' "[!A-Z;!0-9;Null][!A-Z;!0-9;Null]..." avec existence facultative en like correspond au 'motif' "\W*" en regex. c'est un objet qui permet en outre de valider une correspondance d'une chaine de caractère mais aussi de faire le remplacement de celui-ci. il peut faire des différences subtiles comme dissocier 'table' dans "... from table where champ='je mange à table '... " avec un seul 'motif'. et bien plus... pour une intro cf tuto le regex n'est pas plus simple mais plus puissant, si son apprentissage peut être un peu fastidieux il devient rapidement "indispensable". à toi de voir mais peut être qq'un d'autre aura une autre proposition plus simple... bonne continuation. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com