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 :

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
Si vous avez des conseils à me donner je suis preneur ! Merci beaucoup
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.