Bonjour,
Je suis sous Access 2003 et j'utilise VBA pour filtrer un formulaire.
Ce formulaire F_pilotage est liée à une requête (source du formulaire).
Aujourd'hui, j'applique directement mon filtre par le formulaire.
C'est à dire que j'ai mes listes déroulantes et mon bouton "Activer filtre" qui permettent d'appliquer le filtre, et le bouton "Désactiver filtre" qui efface le contenu des listes déroulantes et réinitialise le filtre.
J’ai réussi à cumuler plusieurs paramètres de filtres
Ce que je veux faire :
Je commence à avoir de plus en plus de paramètres à filtrer.
Le problème, c’est que dans l’aspect visuel de mon formulaire, la section relative aux filtres commence à prendre beaucoup de place.
J’ai donc créé un autre formulaire F_tri où j’ai collé le code du filtre.
Mon problème est que mon filtre fait appel aux champs de mon premier formulaire et je n’arrive pas à faire la liaison…
Je vois un souci dans mon code au niveau du ME, mais ne sais pas comment le régler.
Voici mon code :
Code :
- Private Sub cmd_filtre_on_Click()
- 'FILTRE FACTURABLE
- If Not IsNull(Me.select_facturable.Value) And Me.select_facturable.Value <> "" Then
- If filtre <> "" Then
- filtre = filtre & " AND inf_facturable = """ & Me.select_facturable.Value & """"
- Else
- filtre = "inf_facturable = """ & Me.select_facturable.Value & """"
- End If
- End If
- 'FILTRE A FACTURER
- If Not IsNull(Me.select_a_facturer.Value) And Me.select_a_facturer.Value <> "" Then
- If filtre <> "" Then
- filtre = filtre & " AND inf_a_facturer = """ & Me.select_a_facturer.Value & """"
- Else
- filtre = "inf_a_facturer = """ & Me.select_a_facturer.Value & """"
- End If
- End If
- 'FILTRE FACTURÉ
- If Not IsNull(Me.select_facture.Value) And Me.select_facture.Value <> "" Then
- If Me.select_facture.Value = "Oui" Then
- If filtre <> "" Then
- filtre = filtre & " AND inf_facture <> 0"
- Else
- filtre = "inf_facture <> 0"
- End If
- End If
-
- If Me.select_facture.Value = "Non" Then
- If filtre <> "" Then
- filtre = filtre & " AND inf_facture is null"
- Else
- filtre = "inf_facture is null"
- End If
- End If
- End If
- Me.Filter = filtre
- Me.FilterOn = True
- Me.OrderBy = "PR"
- Me.OrderByOn = True
- End Sub
|
D’avance merci pour vos contributions.