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 |
Partager