Bonjour à vous, j'ai décidé de faire appel à vôtre talent car je n'arrive pas à corrigé 2 erreurs qui ce trouve dans mon formulaire. Tout d'abord j'ai suivi à la lettre les étapes du Tutoriel de Caféine. Avant d'aller plus loin voici le code de mon formulaire de recherche
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
Option Compare Database
 
Private Sub chkFabricant_Click()
 
If Me.chkFabricant Then
    Me.txtRechNomDuFabricant.Visible = False
Else
    Me.txtRechNomDuFabricant.Visible = True
End If
 
RefreshQuery
 
End Sub
 
 
Private Sub chkUsagePrincipal_Click()
 
If Me.chkUsagePrincipal Then
    Me.cmbRechUsagePrincipal.Visible = False
Else
    Me.cmbRechUsagePrincipal.Visible = True
End If
 
RefreshQuery
 
End Sub
 
Private Sub chkNomCommun_Click()
 
If Me.chkNomCommun Then
    Me.txtRechNomCommun.Visible = False
Else
    Me.txtRechNomCommun.Visible = True
End If
 
RefreshQuery
 
End Sub
 
Private Sub chkNomGénérique_Click()
 
If Me.chkNomGénérique Then
    Me.txtRechNomGénérique.Visible = False
Else
    Me.txtRechNomGénérique.Visible = True
End If
 
RefreshQuery
 
End Sub
 
 
Private Sub chkEndroit_Click()
 
If Me.chkEndroit Then
    Me.cmbRechEndroit.Visible = False
Else
    Me.cmbRechEndroit.Visible = True
End If
 
RefreshQuery
 
End Sub
 
Private Sub cmbRechUsagePrincipal_BeforeUpdate(Cancel As Integer)
 
RefreshQuery
 
End Sub
 
Private Sub cmbRechEndroit_BeforeUpdate(Cancel As Integer)
 
RefreshQuery
 
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 = ""
 
        Case "cmb"
            ctl.Visible = False
 
    End Select
Next ctl
 
Me.lstResults.RowSource = "SELECT CodMedia, NomDuFabricant, NomGénérique, NomCommun, Endroit FROM T_Produits_Info_Complet;"
Me.lstResults.Requery
 
End Sub
 
Private Sub RefreshQuery()
Dim SQL As String
Dim SQLWhere As String
 
SQL = "SELECT CodMedia, NomDuFabricant, NomGénérique, NomCommun, Endroit FROM T_Produits_Info_Complet Where T_Produits_Info_Complet!CodMedia <> 0 "
 
If Not Me.chkFabricant Then
    SQL = SQL & "And T_Produits_Info_Complet!NomDuFabricant like '*" & Me.txtRechNomDuFabricant & "*' "
End If
If Not Me.chkUsagePrincipal Then
    SQL = SQL & "And T_Produits_Info_Complet!UsagePrincipal = '" & Me.cmbRechUsagePrincipal & "' "
End If
If Not Me.chkNomCommun Then
    SQL = SQL & "And T_Produits_Info_Complet!NomCommun like '*" & Me.txtRechNomCommun & "*' "
End If
If Not Me.chkNomGénérique Then
    SQL = SQL & "And T_Produits_Info_Complet!Titre like '*" & Me.txtRechNomGénérique & "*' "
End If
If Not Me.chkEndroit Then
    SQL = SQL & "And T_Produits_Info_Complet!Endroit = '" & Me.cmbRechEndroit & "' "
End If
 
SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1))
 
SQL = SQL & ";"
 
Me.lblStats.Caption = DCount("*", "T_Produits_Info_Complet", SQLWhere) & " / " & DCount("*", "T_Produits_Info_Complet")
Me.lstResults.RowSource = SQL
Me.lstResults.Requery
 
End Sub
 
 
Private Sub lstResults_DblClick(Cancel As Integer)
 
DoCmd.OpenForm "Saisie", acNormal, , "[CodMedia] = " & Me.lstResults
 
 
End Sub
 
Private Sub txtRechNomDuFabricant_BeforeUpdate(Cancel As Integer)
 
RefreshQuery
 
End Sub
 
Private Sub txtRechNomCommun_BeforeUpdate(Cancel As Integer)
 
RefreshQuery
 
End Sub
 
Private Sub txtRechNomGénérique_BeforeUpdate(Cancel As Integer)
 
RefreshQuery
 
End Sub
Mon premier problème ce situe au niveau du check box "chkNomGénérique" lorsque je clic sur cette case une erreur apparaît ( Erreur d'execution 2001 ) il me renvoit alors dans le Code et en jaune
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Me.lblStats.Caption = DCount("*", "T_Produits_Info_Complet", SQLWhere) & " / " & DCount("*", "T_Produits_Info_Complet")
. J'essaie de déchiffrer cela mais je n'y parvient pas. J'ai procédé à une vérification complété du code VS celui de Caféine. Et j'ai pas trouvé d'erreur.

Mon 2 pb , dans ma zone de liste "lstResults" j'ai seulement l'information du CodMedia qui apparait. Et aucun Titre comme celui de Caféine. Et dans la section propriété de "lstResults" j'ai sous la section "contenu" SELECT [CodMedia], [NomDuFabricant], [NomGénérique], [NomCommun], [Endroit] FROM T_Produits_Info_Complet;. J'ai cru à première vue que c'était l'ordre des champs dans ma table qui était en défaut j'ai alors changer l'ordre pour quelle soit indentique à celle de Caféine. Et le résultat est le même seulement le CodMedia s'affiche dans la zone de liste. Et ce qui m'importe ce sont les autres informations.

Également si je clic en premier sur le crochet du NomGénérique et que par la suite je clic sur celui du Fabricant et du NomCommun j'optiens la même erreur . Cependant si je clic sur fabricant ou NomCommun j'ai pas de problèmes ils recherchent les informations et le tout ce met à jour.

Et le double clic sur la sélection choisi dans la zone de liste fonctionne il me revois en dans formulaire "Saisie" et m'affiche la bonne information.

La base de donnée fonctionne principalement sous le Formulaire Saisie. J'aimerais ajouter un bouton pour ouvrir le formulaire de recherche et effectuer la recherche et qu'il me retourne dans mon formulaire Saisie au lieu d'en ouvrir un second. J'aimerais connaître la façon de faire dans le code pour cette option si possible.


Je ne sais pas si mes explications sont claires sinon je peux ajouter d'autre informations pour la rendre plus précise.

J'ai en pièces jointe quelques photos de mon formulaire recherche et de ma table.

Merci à l'avance.