Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/12/2010, 16h07   #1
Membre Expert
 
Inscription : août 2006
Messages : 1 435
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 1 435
Points : 1 753
Points : 1 753
Par défaut critère de sélection

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 :
1
2
 
Comme "*[!A-Z;!0-9]ABC[!A-Z;!0-9]*" Ou Comme "ABC" Ou Comme "ABC[!A-Z;!0-9]*" Ou Comme "*[!A-Z;!0-9]ABC"
Merci de vos réponses
helas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/12/2010, 03h56   #2
Expert Confirmé
 
Avatar de vodiem
 
Homme Diem VO
Vivre
Inscription : avril 2006
Messages : 2 644
Détails du profil
Informations personnelles :
Nom : Homme Diem VO
Âge : 40
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Vivre
Secteur : Conseil

Informations forums :
Inscription : avril 2006
Messages : 2 644
Points : 3 895
Points : 3 895
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.

vodiem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/12/2010, 10h08   #3
Membre Expert
 
Inscription : août 2006
Messages : 1 435
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 1 435
Points : 1 753
Points : 1 753
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.
helas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/12/2010, 14h20   #4
Expert Confirmé
 
Avatar de vodiem
 
Homme Diem VO
Vivre
Inscription : avril 2006
Messages : 2 644
Détails du profil
Informations personnelles :
Nom : Homme Diem VO
Âge : 40
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Vivre
Secteur : Conseil

Informations forums :
Inscription : avril 2006
Messages : 2 644
Points : 3 895
Points : 3 895
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.
vodiem est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h17.


 
 
 
 
Partenaires

Hébergement Web