OVH Cloud OVH Cloud

HELP

9 réponses
Avatar
Laetitia
Bonjour,

j'AI CE PETIT BOUT DE CODE CI DESSOUS QUI PEU ME=20
PERMETTRE DE FAIRE UNE RECHERCHE MULTIPLE SUR MA BASE DES=20
CLIENTS

J'AI UNE PARTIE DE CE CODE QU'il FAUT METTRE DANS UN=20
MODULE ET L'AUTRE DANS MON FORMULAIRE

MAIS JE SAIS PAS QUOI !!!

POUVEZ-VOUS M'AIDER ? J'AI GRAND BESOIN D'AIDES

MERCI D'AVANCE


Function BuildSQLString() As Boolean

Dim strSQL As String
Dim strSELECT As String
Dim strFROM As String
Dim strWHERE As String

strSELECT =3D "clients.*"
strFROM =3D "clients"

If Forms![Crit=E8res_recherche].Liste1 <> "" Then
strWHERE =3D strWHERE & " AND ((clients.societe) Like
[Formulaires]![Crit=E8res_recherche]![Liste1] & ""*"")"
End If
If Forms![Crit=E8res_recherche].Liste2 <> "" Then
strWHERE =3D strWHERE & " AND ((clients.codepostal) Like
[Formulaires]![Crit=E8res_recherche]![Liste2] & ""*"")"
End If
'... etc pour tous les crit=E8res

strSQL =3D "SELECT " & strSELECT
strSQL =3D strSQL & " FROM " & strFROM
If strWHERE <> "" Then strSQL =3D strSQL & " WHERE " &=20
Mid$(strWHERE, 6)
strSQL =3D strSQL & " ORDER BY clients.refclients"

CurrentDb.QueryDefs("Requete_RechMultiple").SQL =3D strSQL

BuildSQLString =3D True

End Function




.

9 réponses

Avatar
joyeux atchoum
S'lt

juste au passage, tu n'es pas obligé de hurler :) et puis help en sujet ce n'est pas trés explicite, non ? :)

Si tu veux que ta fonction soit accésible depuis n'importe quel formulaire tu la mets un nouveau module, autrement tu peux la laisser dans le module de classe de ton formulaire.

et puis par exemple dans l'evenement click d'un bouton nommé "button" dans ton formulaire tu fais appel à la fonction :
Sub button_click()
BuildSQLString()
End Sub

voili

ja
qui espére avoir été clair
Avatar
Laetitia
Salut Joyeux atchoum, et merci de repondre

Désolé de crier !

Mon problème ce situe plus dans le code
Si je mets le code ci-dessous dans le module, j'ai une
erreur sur la ligne
[Formulaires]![Critères_recherche]![Liste1] & ""*"")"

J'arrive bien à appeler la fonction depuis mon formulaire
mais, il y a sûrement, une partie à mettre dans le module
et une autre dans le formulaire

Function BuildSQLString() As Boolean

Dim strSQL As String
Dim strSELECT As String
Dim strFROM As String
Dim strWHERE As String

strSELECT = "clients.*"
strFROM = "clients"

If Forms![Critères_recherche].Liste1 <> "" Then
strWHERE = strWHERE & " AND ((clients.societe) Like
[Formulaires]![Critères_recherche]![Liste1] & ""*"")"
End If
If Forms![Critères_recherche].Liste2 <> "" Then
strWHERE = strWHERE & " AND ((clients.codepostal) Like
[Formulaires]![Critères_recherche]![Liste2] & ""*"")"
End If
'... etc pour tous les critères

strSQL = "SELECT " & strSELECT
strSQL = strSQL & " FROM " & strFROM
If strWHERE <> "" Then strSQL = strSQL & " WHERE " &
Mid$(strWHERE, 6)
strSQL = strSQL & " ORDER BY clients.refclients"

CurrentDb.QueryDefs("Requete_RechMultiple").SQL = strSQL

BuildSQLString = True

End Function

Merci et Bonne Fin d'Année
Avatar
joyeux atchoum
S'l

je crois avoir compris, il te faut supprimer le retour à la ligne sur la ligne précedent ton erreur i.e.

strWHERE = strWHERE & " AND ((clients.societe) Like [Formulaires]![Critères_recherche]![Liste1] & ""*"")
idem plus bas
strWHERE = strWHERE & " AND ((clients.codepostal) Like [Formulaires]![Critères_recherche]![Liste2] & ""*"")

et enfin soit tu supprime le retour à la ligne soit tu rajoutes un _
If strWHERE <> "" Then strSQL = strSQL & " WHERE " &
Mid$(strWHERE, 6

voili et maintenant tu ne devrais plus avoir de lignes rouge. Access lit indépendement chacune des lignes de code. donc tu dois soit supprimer les retours à la ligne soit rajouter _ en fin de ligne pour preciser que la ligne suivante est une continuité

voil

j
qui espére avoir aider
Avatar
3stone
Salut Laetitia et ja,

"joyeux atchoum"
je crois avoir compris, il te faut supprimer le retour à la ligne sur la ligne précedent ton
erreur i.e.


strWHERE = strWHERE & " AND ((clients.societe) Like [Formulaires]![Critères_recherche]![Liste1]
& ""*"")"



Pour que cela passe, soit utiliser l'english, soit "sortir" la liste de la chaîne...

cela devient (normalement ;-)

strWHERE = strWHERE & " AND ((clients.societe) Like [Forms]![Critères_recherche]![Liste1] & '*')"

ou

strWHERE = strWHERE & " AND ((clients.societe) Like " & [Formulaires]![Critères_recherche]![Liste1]
& "*)"

pour chaque expression, bien sûr...


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------

Avatar
Pierre CFI
salut mon petit bonhomme de troisstone, j'aurai mis des ' pour entourer le
contenu du champ du form
mais bon :o))))

--
Pierre CFI
Microsoft MVP Access

Pour mieux utiliser microsoft.public.fr.access...
http://users.skynet.be/mpfa/charte.htm

"3stone" a écrit dans le message de news:

Salut Laetitia et ja,

"joyeux atchoum"
je crois avoir compris, il te faut supprimer le retour à la ligne sur la
ligne précedent ton


erreur i.e.

strWHERE = strWHERE & " AND ((clients.societe) Like
[Formulaires]![Critères_recherche]![Liste1]


& ""*"")"


Pour que cela passe, soit utiliser l'english, soit "sortir" la liste de la
chaîne...


cela devient (normalement ;-)

strWHERE = strWHERE & " AND ((clients.societe) Like
[Forms]![Critères_recherche]![Liste1] & '*')"


ou

strWHERE = strWHERE & " AND ((clients.societe) Like " &
[Formulaires]![Critères_recherche]![Liste1]

& "*)"

pour chaque expression, bien sûr...


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------







Avatar
3stone
Salut mon grand père, heu.... grand Pierre ;-))

"Pierre CFI"
salut mon petit bonhomme de troisstone, j'aurai mis des ' pour entourer le
contenu du champ du form



strWHERE = strWHERE & " AND ((clients.societe) Like '" & [Formulaires]![Critères_recherche]![Liste1]
& "'*)"


oui... comme société "semble" être du type string...
mais, c'était surtout après le "Like" que je zieutais :o))


Bonne année Pierre ! A l'année prochaine ;-)


--
A+
Pierre (3stone) Access MVP - qui s'en va attaquer sec l'apéro !!!
-----------------------------
http://users.skynet.be/mpfa
-----------------------------

Avatar
Pierre CFI
l'apéro à cette heure, et ben dis donc, çà va étre beau à 24 h
Raymond à soufflé dans le ballon ce matin, directos la salle de dégrisement,
plus de permis... :o)))

--
Pierre CFI
Microsoft MVP Access

Pour mieux utiliser microsoft.public.fr.access...
http://users.skynet.be/mpfa/charte.htm

"3stone" a écrit dans le message de news:

Salut mon grand père, heu.... grand Pierre ;-))

"Pierre CFI"
salut mon petit bonhomme de troisstone, j'aurai mis des ' pour entourer
le


contenu du champ du form



strWHERE = strWHERE & " AND ((clients.societe) Like '" &
[Formulaires]![Critères_recherche]![Liste1]

& "'*)"


oui... comme société "semble" être du type string...
mais, c'était surtout après le "Like" que je zieutais :o))


Bonne année Pierre ! A l'année prochaine ;-)


--
A+
Pierre (3stone) Access MVP - qui s'en va attaquer sec l'apéro !!!
-----------------------------
http://users.skynet.be/mpfa
-----------------------------









Avatar
Maxence HUBICHE
moi, j'intervertirait le ' et le * à la fin... juste avant la )
pour donner plutôt :

"*')"

Voilà !

--
----------------------------------------------------------------------------
-
Maxence HUBICHE
Formateur et développeur indépendant
Modérateur/rédacteur sur http://www.developpez.com

"3stone" a écrit dans le message de news:

Salut mon grand père, heu.... grand Pierre ;-))

"Pierre CFI"
salut mon petit bonhomme de troisstone, j'aurai mis des ' pour entourer
le


contenu du champ du form



strWHERE = strWHERE & " AND ((clients.societe) Like '" &
[Formulaires]![Critères_recherche]![Liste1]

& "'*)"


oui... comme société "semble" être du type string...
mais, c'était surtout après le "Like" que je zieutais :o))


Bonne année Pierre ! A l'année prochaine ;-)


--
A+
Pierre (3stone) Access MVP - qui s'en va attaquer sec l'apéro !!!
-----------------------------
http://users.skynet.be/mpfa
-----------------------------









Avatar
Raymond [mvp]
Bonjour Pierre.

Je suis sorti, tu vois, et avec le permis.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Pierre CFI" a écrit dans le message de
news:%
l'apéro à cette heure, et ben dis donc, çà va étre beau à 24 h
Raymond à soufflé dans le ballon ce matin, directos la salle de
dégrisement,

plus de permis... :o)))

--
Pierre CFI