Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VBA : guillemets imbriqués

3 réponses
Avatar
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

3 réponses

Avatar
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.


"Phil_D" a écrit dans le message de groupe de
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












Avatar
Phil_D
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" a écrit dans le message de news:

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.




Avatar
Eric
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" a écrit dans le message de news:

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