VBA : guillemets imbriqués

Le
Phil_D
Salut,
Je vais essayer d'être clair .

Pour rechercher un mot (issu d'une textbox d'un formulaire) dans un champ
qui contient lui-même une liste de mots, j'utilise le critère suivant:
Comme "*" & [Forms]![F_RechercheRapide]![Recherche1] & "*"

Pour définir cette clause SQL à partir de VBA, j'utilise une variable
StrWhereSQL à laquelle j'ai affecté:
StrWhereSQL = "(T_BCD.MotsClés) like " & " * " &
"[Forms]![F_RechercheRapide]![Recherche1]" & " * ""

Tout cela ne fonctionne pas à cause de l'imbrication des guillemets , me
semble-t-il..

En fait j'essaie d'obtenir, par VBA une clause SQL qui soit : (Affichage SQL
de la grille de requête)

WHERE (((T_BCD.MotsClés) Like "*" & [Forms]![F_RechercheRapide]![Recherche1]
& "*" Or (T_BCD.MotsClés) Like "*" &
[Forms]![F_RechercheRapide]![Recherche2] & "*" Or (T_BCD.MotsClés) Like "*"
& [Forms]![F_RechercheRapide]![Recherche3] & "*"))



==> en fait 3 critères de recherche reliées par ET/OU (au choix)



Malheureusement, ma connaissance de VBA n'est pas à la hauteur de mes
ambitions,

Je rame sur la syntaxe exacte er l'imbrication des guillemets .



Merci pour votre aide.

PS Je suis pas certain d'avoir été vraiment clair, mais

pour une meilleure compréhension, je peux fournir formulaires er requête au
besoin.



Phil_D

XP // Access 2003
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Thierry
Le #18947201
Bonjour,

Essayez ce qui suit :

Dim strSQL As String
strSQL = "" & vbCrLf
strSQL = strSQL & " WHERE (((T_BCD.MotsClés) Like ""*"" &
[Forms]![F_RechercheRapide]![Recherche1] & ""*"" " & vbCrLf
strSQL = strSQL & " OR (T_BCD.MotsClés) Like ""*"" &
[Forms]![F_RechercheRapide]![Recherche2] & ""*"" " & vbCrLf
strSQL = strSQL & " OR (T_BCD.MotsClés) Like ""*"" &
[Forms]![F_RechercheRapide]![Recherche3] & ""*""))"

Je génère ce code automatiquement à partir d'un formulaire dans une base
Access.
Si cela vous intéresse, dites-le je vous la transmettrai.
C'est très pratique et ça m'évite de me prendre la tête ...

Bonne journée.


"Phil_D" discussion :
Salut,
Je vais essayer d'être clair ....

Pour rechercher un mot (issu d'une textbox d'un formulaire) dans un champ
qui contient lui-même une liste de mots, j'utilise le critère suivant:
Comme "*" & [Forms]![F_RechercheRapide]![Recherche1] & "*"

Pour définir cette clause SQL à partir de VBA, j'utilise une variable
StrWhereSQL à laquelle j'ai affecté:
StrWhereSQL = "(T_BCD.MotsClés) like " & " * " &
"[Forms]![F_RechercheRapide]![Recherche1]" & " * ""

Tout cela ne fonctionne pas à cause de l'imbrication des guillemets , me
semble-t-il.....

En fait j'essaie d'obtenir, par VBA une clause SQL qui soit : (Affichage
SQL de la grille de requête)

WHERE (((T_BCD.MotsClés) Like "*" &
[Forms]![F_RechercheRapide]![Recherche1] & "*" Or (T_BCD.MotsClés) Like
"*" & [Forms]![F_RechercheRapide]![Recherche2] & "*" Or (T_BCD.MotsClés)
Like "*" & [Forms]![F_RechercheRapide]![Recherche3] & "*"))



==> en fait 3 critères de recherche reliées par ET/OU (au choix)



Malheureusement, ma connaissance de VBA n'est pas à la hauteur de mes
ambitions,

Je rame sur la syntaxe exacte er l'imbrication des guillemets ....



Merci pour votre aide.

PS Je suis pas certain d'avoir été vraiment clair, mais

pour une meilleure compréhension, je peux fournir formulaires er requête
au besoin.



Phil_D

XP // Access 2003












Phil_D
Le #18951561
Salut Thierry et merci pour ton aide

Bien que j'aie essayé de contourner le problème avec d'autres moyens** , je
suis intéressé par ta proposition.
Mon adresse mail :

** j'essaie de reféninir la propriété source de mon formulaire

If Me.Option1= 2 then
Forms.MonFormulaire.RecordSource = R_RechercheRapide_OU
else
Forms.MonFormulaire.RecordSource = R_RechercheRapide_ET
endif

mais ACCESS me retourne un message d'erreur sur un nom de champ '|' inconnu
une idée ???

Merci encore pour ton aide.








"Thierry"
Bonjour,

Essayez ce qui suit :

Dim strSQL As String
strSQL = "" & vbCrLf
strSQL = strSQL & " WHERE (((T_BCD.MotsClés) Like ""*"" &
[Forms]![F_RechercheRapide]![Recherche1] & ""*"" " & vbCrLf
strSQL = strSQL & " OR (T_BCD.MotsClés) Like ""*"" &
[Forms]![F_RechercheRapide]![Recherche2] & ""*"" " & vbCrLf
strSQL = strSQL & " OR (T_BCD.MotsClés) Like ""*"" &
[Forms]![F_RechercheRapide]![Recherche3] & ""*""))"

Je génère ce code automatiquement à partir d'un formulaire dans une base
Access.
Si cela vous intéresse, dites-le je vous la transmettrai.
C'est très pratique et ça m'évite de me prendre la tête ...

Bonne journée.




Eric
Le #18952411
Bonsoir,

Essaies :
StrWhereSQL = " where [T_BCD.MotsClés] like ""*" & _
[Forms]![F_RechercheRapide]!recherche1 & "*""" & _
" or [T_BCD.MotsClés] like ""*" & _
[Forms]![F_RechercheRapide]!recherche2 & "*""" & _
" or [T_BCD.MotsClés] like ""*" & _
[Forms]![F_RechercheRapide]!recherche3 & "*"""

Phil_D a écrit :
Salut Thierry et merci pour ton aide

Bien que j'aie essayé de contourner le problème avec d'autres moyens** , je
suis intéressé par ta proposition.
Mon adresse mail :

** j'essaie de reféninir la propriété source de mon formulaire

If Me.Option1= 2 then
Forms.MonFormulaire.RecordSource = R_RechercheRapide_OU
else
Forms.MonFormulaire.RecordSource = R_RechercheRapide_ET
endif

mais ACCESS me retourne un message d'erreur sur un nom de champ '|' inconnu
une idée ???

Merci encore pour ton aide.








"Thierry"
Bonjour,

Essayez ce qui suit :

Dim strSQL As String
strSQL = "" & vbCrLf
strSQL = strSQL & " WHERE (((T_BCD.MotsClés) Like ""*"" &
[Forms]![F_RechercheRapide]![Recherche1] & ""*"" " & vbCrLf
strSQL = strSQL & " OR (T_BCD.MotsClés) Like ""*"" &
[Forms]![F_RechercheRapide]![Recherche2] & ""*"" " & vbCrLf
strSQL = strSQL & " OR (T_BCD.MotsClés) Like ""*"" &
[Forms]![F_RechercheRapide]![Recherche3] & ""*""))"

Je génère ce code automatiquement à partir d'un formulaire dans une base
Access.
Si cela vous intéresse, dites-le je vous la transmettrai.
C'est très pratique et ça m'évite de me prendre la tête ...

Bonne journée.









--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Publicité
Poster une réponse
Anonyme