Filtres personnalisés
Filtres personnalisés sur formulaire en affichage continu
L'exemple ci-dessous suppose 3 zones de listes modifiables :
- ListeTextes
- ListeNombres
- ListeDates
placées dans l'entête d'un formulaire avec affichage en mode continu.
Private Sub FiltrerEnrg()
Dim strFiltre As String
If (Not IsNull(ListeTextes)) Then
strFiltre = "[ChampTexte]='" & ListeTextes & "' AND "
End If
If (Not IsNull(ListeNombres)) Then
strFiltre = strFiltre & "[ChampNumerique]=" & ListeNombres & " AND "
End If
If (Not IsNull(ListeDates)) Then
strFiltre = strFiltre & "[ChampDate]=#" & ListeDates & "# AND "
End If
If (strFiltre = "") Then
Me.Filter = ""
Me.FilterOn = False
Else
strFiltre = "(" & Left$(strFiltre, Len(strFiltre) - 5) & ")"
Me.Filter = strFiltre
Me.FilterOn = True
End If
End Sub
'Dans l'événement "sur après mise à jour" de chacune d'elles, on appellera tout simplement la routine FiltrerEnrg :
Private Sub ListeTextes_AfterUpdate()
FiltrerEnrg
End Sub
Private Sub ListeNombres_AfterUpdate()
FiltrerEnrg
End Sub
Private Sub ListeDates_AfterUpdate()
FiltrerEnrg
End Sub
'On adaptera ce code en fonction du nombre exact de zones de listes, des noms réels des champs et contrôles et du type des données etc...
Dernière modification : 08/02/2010 17:55
Catégorie : Les mémos - Formulaires
Page lue 11101 fois