Les mémos
Je débute...
Visites

 987452 visiteurs

 1 visiteur en ligne

Recherche
 
Fermer

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


Catégorie : Les mémos - Formulaires
Page lue 8755 fois