Téléchargement
illégal
Posez votre question Signaler

Requête SQL avec LIKE [Résolu]

gaudian 63Messages postés 22 juin 2007Date d'inscription - Dernière réponse le 12 sept. 2007 à 14:15
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
Lire la suite 

Requête SQL avec LIKE »

6 réponses
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
J'ai une erreur de syntaxe
Ajouter un commentaire
Réponse
+0
moins plus
Dis en plus !
une erreur sql ? une erreur vb ? quel est le message de l'erreur ?
Ajouter un commentaire
Réponse
+0
moins plus
L'erreur est la suivante :

Erreur de compilation:
Attendu: séparateur de liste ou )
Ajouter un commentaire
Réponse
+0
moins plus
J'ai trouvé il manqué un " a la fin.
Maintenant, il me dit que je n'ai aucun enregistrement en cours
Ajouter un commentaire
Réponse
+0
moins plus
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) & "*' ")
Ajouter un commentaire
Ce document intitulé « Requête SQL avec LIKE » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?