Requête SQL avec LIKE

[Résolu/Fermé]
Signaler
Messages postés
62
Date d'inscription
vendredi 22 juin 2007
Statut
Membre
Dernière intervention
12 septembre 2007
-
Messages postés
62
Date d'inscription
vendredi 22 juin 2007
Statut
Membre
Dernière intervention
12 septembre 2007
-
Bonjour à tous,
J'ai un petit soucis avec une requête SQL.
Je travaille sous VB et j'interroge une base de données situées sous ACCESS

Je souhaiterais savoir comment faire pour rechercher une partie d'une chaîne de caractères, je m'explique :
je dispose de 2 tables ou il y a des enregistrements (nom, prenom, adresse, etc.)
- ma 1ère table comprend un enregistrement tel que TOTO pour le nom
- ma 2ème table comprend un enregistrement tel que M. TOTO pour le nom (c'est la même personne)

quand j'exécute le code ci-dessous :
il ne me trouve pas M. TOTO à cause du M. pour les monsieur, (j'ai également Mlle. Mme.)
je ne peux pas changer la 2ème table pour ceux qui vont me dire enlève M. ou Mme. ou encore Mlle.

Set DB1 = DBEngine(0)(0)
Set rsNewResponsable = DB1.OpenRecordset("SELECT * FROM PVHT_VH")
Set rsNewResponsable2 = DB1.OpenRecordset("SELECT * FROM PVHT_RESP")

rsNewResponsable.MoveFirst
rsNewResponsable2.MoveFirst

'Pour la table PVHT_RESP
Do Until rsNewResponsable2.EOF
'Si le champ de la table PVHT_RESP correspond
If Trim(lsAncienResponsable) = Trim(rsNewResponsable2.FindFirst.Fields("RESPONSABLE")) Then
rsNewResponsable2.EDIT
rsNewResponsable2.Fields("RESPONS_SITE") = RESPONSABLE.Text
rsNewResponsable2.Update
Exit Do

End If
rsNewResponsable2.MoveNext
Loop

J'ai donc voulu changer ma requête par celle-ci :
Set rsNewResponsable2 = DB1.OpenRecordset("SELECT * FROM PVHT_RESP WHERE RESPONSABLE LIKE & '% lsAncienResponsable% ' & ")

Mais l'application plante car il ne trouve aucun enregistrement, alors que quand j'exécute cette requête directement sur ma base de données, celle-ci fonctionne.

Merci pour votre aide

6 réponses

Messages postés
3671
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
999
Bonjour,

Il me semble que tu t'emmêles un peu dans les ".
Essaie ceci :
Set rsNewResponsable2 = DB1.OpenRecordset("SELECT * FROM PVHT_RESP WHERE RESPONSABLE LIKE '%" & lsAncienResponsable & "%')

Xavier
Messages postés
62
Date d'inscription
vendredi 22 juin 2007
Statut
Membre
Dernière intervention
12 septembre 2007
3
J'ai une erreur de syntaxe
Messages postés
3671
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
999
Dis en plus !
une erreur sql ? une erreur vb ? quel est le message de l'erreur ?
Messages postés
62
Date d'inscription
vendredi 22 juin 2007
Statut
Membre
Dernière intervention
12 septembre 2007
3
L'erreur est la suivante :

Erreur de compilation:
Attendu: séparateur de liste ou )
Messages postés
62
Date d'inscription
vendredi 22 juin 2007
Statut
Membre
Dernière intervention
12 septembre 2007
3
J'ai trouvé il manqué un " a la fin.
Maintenant, il me dit que je n'ai aucun enregistrement en cours
Messages postés
62
Date d'inscription
vendredi 22 juin 2007
Statut
Membre
Dernière intervention
12 septembre 2007
3
Bon, je viens de trouver la solution en fouinant un peu plus en détails sur Internet.

Je vous passe la requête SQL
Set rsNewResponsable2 = DB1.OpenRecordset("SELECT * FROM PVHT_RESP WHERE UCase(RESPONSABLE) LIKE '*" & UCase(lsAncienResponsable) & "*' ")