Bonjour à tous !
Actuellement je bloque sur un point dans ma base de données.
J'ai un formulaire de recherche et je souhaiterais filtrer sur la présence ou non de pièce jointe, sauf que je ne vois absolument pas comment faire. Actuellement je procède avec deux requete, une avec et une avec ou sans piece jointe, mais pour les état ça fait donc aussi 2 fois plus d'état etc etc alors qu'il me serait plus simple de simplement créer une checkbox par exemple avec pièce jointe ou sans pièce jointe.
Je vous mets mon code, histoire de voir de où partir :
Si vous avez des conseils à me donner je suis preneur ! Merci beaucoup
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 f = "" 'définir la fonction f qui va permettre de filtrer' If Not IsNull(Me.filtredépartement) And Me.filtredépartement <> "" Then 'Premier critère. Pour adapter le code, copier coller et changer les noms If f <> "" Then f = f & " OR no_Département = " & Me.filtredépartement 'Ici il s'agit d'un critère par liste déroulante. OR au lieu de AND pour filtrer sur plusieurs département Else f = "no_Département = " & Me.filtredépartement 'no_département correspond au champ du département End If End If If Not IsNull(Me.filtredépartement2) And Me.filtredépartement2 <> "" Then If f <> "" Then f = f & " OR no_Département = " & Me.filtredépartement2 Else f = "no_Département = " & Me.filtredépartement2 End If End If If Not IsNull(Me.filtredépartement3) And Me.filtredépartement3 <> "" Then If f <> "" Then f = f & " OR no_Département = " & Me.filtredépartement3 Else f = "no_Département = " & Me.filtredépartement3 End If End If If Not IsNull(Me.filtredépartement4) And Me.filtredépartement4 <> "" Then If f <> "" Then f = f & " OR no_Département = " & Me.filtredépartement4 Else f = "no_Département = " & Me.filtredépartement4 End If End If 'Critère ci dessous pour la date, comprise entre filtreannée1 et filtreannée 2 If Not IsNull(Me.filtreannée1) And Me.filtreannée1 <> "" And Not IsNull(Me.filtreannée2) And filtreannée2 <> "" Then If f <> "" Then f = f & " AND [Date] BETWEEN " & CLng(Me.filtreannée1) & " AND " & CLng(Me.filtreannée2) & "" Else f = "[Date] BETWEEN " & CLng(Me.filtreannée1) & " AND " & CLng(Me.filtreannée2) & "" 'Date correspond au champ date de la table t_références End If End If 'Ci dessous même principe que la date If Not IsNull(Me.filtrecapacité1) And Me.filtrecapacité1 <> "" And Not IsNull(Me.filtrecapacité2) And Me.filtrecapacité2 <> "" Then If f <> "" Then f = f & " AND [Capacité hydraulique en EHhyd] BETWEEN " & CLng(Me.filtrecapacité1) & " AND " & CLng(Me.filtrecapacité2) & "" Else f = "[Capacité hydraulique en EHhyd] BETWEEN " & CLng(Me.filtrecapacité1) & " AND " & CLng(Me.filtrecapacité2) & "" End If End If 'Critère par checkbox, qui marche comme pour la liste déroulante If Not IsNull(Me.checkbfiltre_domestiques) And Me.checkbfiltre_domestiques <> "" Then If f <> "" Then f = f & " AND [Eaux usées domestiques] = " & Me.checkbfiltre_domestiques Else f = "[Eaux usées domestiques] = " & Me.checkbfiltre_domestiques End If End If If Not IsNull(Me.checkbfiltre_agroalim) And Me.checkbfiltre_agroalim <> "" Then If f <> "" Then f = f & " AND [Effluents agro-alimentaires] = " & Me.checkbfiltre_agroalim Else f = "[Effluents agro-alimentaires] = " & Me.checkbfiltre_agroalim End If End If If Not IsNull(Me.checkbfiltre_boues) And Me.checkbfiltre_boues <> "" Then If f <> "" Then f = f & " AND [Boues / Matières de vidange] = " & Me.checkbfiltre_boues Else f = "[Boues / Matières de vidange] = " & Me.checkbfiltre_boues End If End If If Not IsNull(Me.checkbfiltre_lixiviats) And Me.checkbfiltre_lixiviats <> "" Then If f <> "" Then f = f & " AND [Lixiviats / Ruissellement] = " & Me.checkbfiltre_lixiviats Else f = "[Lixiviats / Ruissellement] = " & Me.checkbfiltre_lixiviats End If End If If Not IsNull(Me.filtremarché) And Me.filtremarché <> "" Then If f <> "" Then f = f & " AND [Marché] = """ & Me.filtremarché & """" Else f = "[Marché] = """ & Me.filtremarché & """" End If End If If Not IsNull(Me.filtrefiliere) And Me.filtrefiliere <> "" Then If f <> "" Then f = f & " AND [Filière] = """ & Me.filtrefiliere & """" Else f = "[Filière] = """ & Me.filtrefiliere & """" End If End If If Not IsNull(Me.filtremissiondet) And Me.filtremissiondet <> "" Then If f <> "" Then f = f & " AND [Mission détaillée] = """ & Me.filtremissiondet & """" Else f = "[Mission détaillée] = """ & Me.filtremissiondet & """" End If End If If Not IsNull(Me.filtremission) And Me.filtremission <> "" Then If f <> "" Then f = f & " AND [Mission] = """ & Me.filtremission & """" Else f = "[Mission] = """ & Me.filtremission & """" End If End If Me.Filter = f 'filter est la fonction filtre représenté par la lettre f Me.FilterOn = True 'activation du filtre End Sub
J'ai déjà essayer mais il me dit que le champs de pièce jointe ne peux pas être utilisé dans une clause WHERE etc. Donc il n'y a rien dans le code qui fait référence a ma checkbox de pièce jointe actuellement.
Partager