Bonjour,
Je ne suis pas une habituée des forums... vous excuserz alors mon inexpérience. J'ai lu le tuto sur les recherche multi-critères, et j'ai même basé mon formulaire sur cet exemple. Mais..hic.. ca ne fonctionne pas...

Je commence du début, je vous explique donc, ce que je veux faire... J'ai un formulaire (frmRecherche) que j'ai crée avec tous des case à cocher et des boites txt indépendantes.J'ai donc 11 critères basés sur 2 tables, et regrouper dans un formulaire qui s'appelle frmResultat où dans le fond tout ma base de données est stockée.
L'usager doit donc cliquer sur la case à cocher dans le (frmRecherche) la boite txt apparait et les résultats doivent apparaître dans une liste de résultat. Ainsi par exemple, si je cherche un client qui s'appelle Marc, la liste de tous les clients s'affichera ainsi que leurs coordonnées.

Mais, rien ne se passe lorsque j'inscrit quelques choses dans le formulaire de recherche.. je vois bien mes erreurs en rouge mais je ne sais pas par quoi les remplacer...


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
Option Compare Database
 
Private Sub chkCie_Click()
 
If Me.chkCie Then
    Me.txtCie.Visible = True
Else
    Me.txtCie.Visible = False
End If
 
RefreshQuery
End Sub
 
Private Sub chkNoFacture_Click()
 
If Me.chkNoFacture Then
    Me.txtNoFacture.Visible = True
Else
    Me.txtNoFacture.Visible = False
End If
 
RefreshQuery
End Sub
 
Private Sub chkCouleurs_Click()
 
If Me.chkCouleurs Then
    Me.txtCouleurs.Visible = True
Else
    Me.txtCouleurs.Visible = False
End If
 
RefreshQuery
End Sub
 
 
 
Private Sub chkDateAchata_Click()
 
If Me.chkDateAchata Then
    Me.txtDateAchata.Visible = True
Else
    Me.txtDateAchata.Visible = False
End If
 
RefreshQuery
End Sub
 
Private Sub chkDateAchatDe_Click()
 
If Me.chkDateAchatDe Then
    Me.txtDateAchatDe.Visible = True
Else
    Me.txtDateAchatDe.Visible = False
End If
 
RefreshQuery
End Sub
 
Private Sub chkLivrea_Click()
 
If Me.chkLivrea Then
    Me.txtLivrea.Visible = True
Else
    Me.txtLivrea.Visible = False
End If
 
RefreshQuery
End Sub
 
Private Sub chkNoClient_Click()
 
If Me.chkNoClient Then
    Me.txtNoClient.Visible = True
Else
    Me.txtNoClient.Visible = False
End If
 
RefreshQuery
 
End Sub
 
 
 
 
Private Sub chkNom_Click()
 
If Me.chkNom Then
    Me.txtNom.Visible = True
Else
    Me.txtNom.Visible = False
End If
 
RefreshQuery
 
End Sub
 
Private Sub chkPrenom_Click()
 
If Me.chkPrenom Then
    Me.txtPrenom.Visible = True
Else
    Me.txtPrenom.Visible = False
End If
 
RefreshQuery
 
End Sub
 
Private Sub chkTousLesProduits_Click()
 
If Me.chkTousLesProduits Then
    Me.txtTousLesProduits.Visible = True
Else
    Me.txtTousLesProduits.Visible = False
End If
 
RefreshQuery
End Sub
 
Private Sub chkVille_Click()
 
If Me.chkVille Then
    Me.txtVille.Visible = True
Else
    Me.txtVille.Visible = False
End If
 
RefreshQuery
End Sub
 
Private Sub Détail_Click()
 
End Sub
 
Private Sub Form_Load()
 
Dim ctl As Control
 
For Each ctl In Me.Controls
    Select Case Left(ctl.Name, 3)
        Case "chk"
            ctl.Value = -1
 
        Case "lbl"
            ctl.Caption = "-*-*-"
 
        Case "txt"
            ctl.Visible = False
            ctl.Value = ""
     End Select
Next ctl
 
Me.lstResults.RowSource = "SELECT Client.NoClient, Clients.Prenom, Clients.Nom, Clients.Cie, Clients.Ville, Factures.Livrea, Factures.NoFacture, TousLesProduits, Couleurs, DateAchatDe, DateAchata FROM Clients, Factures"
Me.lstResults.Requery
End Sub
 
Private Sub RefreshQuery()
Dim SQL As String
Dim SQLWhere As String
 
SQL = "SELECT Client.NoClient, Clients.Prenom, Clients.Nom, Clients.Cie, Clients.Ville, Factures.Livrea, Factures.NoFacture, TousLesProduits, Couleurs, DateAchatDe, DateAchata FROM Clients, Factures Where frmresultat!Codresultat <> 0 "
 
If Not Me.chkNoFacture Then
    SQL = SQL & "And frmresultat!NoFacture like '*" & Me.txtNoFacture & "*' "
End If
 
If Not Me.chkNoClient Then
    SQL = SQL & "And frmresultat!NoClient like '*" & Me.txtNoClient & "*' "
End If
 
If Not Me.chkPrenom Then
    SQL = SQL & "And frmresultat!Prenom like '*" & Me.txtPrenom & "*' "
End If
 
If Not Me.chkNom Then
    SQL = SQL & "And frmresultat!Nom like '*" & Me.txtNom & "*' "
End If
 
If Not Me.chkCie Then
    SQL = SQL & "And frmresultat!Cie like '*" & Me.txtCie & "*' "
End If
 
If Not Me.chkVille Then
    SQL = SQL & "And Resultat!Ville like '*" & Me.txtVille & "*' "
End If
 
If Not Me.chkLivrea Then
    SQL = SQL & "And Resultat!Livrea like '*" & Me.txtLivrea & "*' "
End If
 
If Not Me.chkTousLesProduits Then
    SQL = SQL & "And Resultat!TousLesProduits like '*" & Me.txtTousLesProduits & "*' "
End If
 
If Not Me.chkCouleurs Then
    SQL = SQL & "And Resultat!Couleurs like '*" & Me.txtCouleurs & "*' "
End If
 
If Not Me.chkDateAchatDe Then
    SQL = SQL & "And Resultat!DateAchatDe like '*" & Me.txtDateAchatDe & "*' "
End If
 
If Not Me.chkDateAchata Then
    SQL = SQL & "And Resultat!DateAchata like '*" & Me.txtDateAchata & "*' "
End If
 
SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1))
 
SQL = SQL & ";"
 
 
Me.lstResults.RowSource = SQL
Me.lstResults.Requery
 
End Sub
 
Private Sub txtNoClient_BeforeUpdate(cancel As Integer)
RefreshQuery
End Sub
Private Sub txtNoFacture_BeforeUpdate(cancel As Integer)
RefreshQuery
End Sub
Private Sub txtPrenom_BeforeUpdate(cancel As Integer)
RefreshQuery
End Sub
 
Private Sub txtNom_BeforeUpdate(cancel As Integer)
RefreshQuery
End Sub
 
Private Sub txtCie_BeforeUpdate(cancel As Integer)
RefreshQuery
End Sub
 
Private Sub txtVille_BeforeUpdate(cancel As Integer)
RefreshQuery
End Sub
 
 
 
Private Sub txtLivrea_BeforeUpdate(cancel As Integer)
RefreshQuery
End Sub
 
Private Sub txtTousLesProduits_BeforeUpdate(cancel As Integer)
RefreshQuery
End Sub
 
Private Sub txtCouleurs_BeforeUpdate(cancel As Integer)
RefreshQuery
End Sub
 
Private Sub txtDateAchatDe_BeforeUpdate(cancel As Integer)
RefreshQuery
End Sub
 
Private Sub txDateAchata_BeforeUpdate(cancel As Integer)
RefreshQuery
End Sub
Espérant que vous pourrez m'aider