Bonjour,
J'ai des textbox indépendants (8) qui me permettent de filtrer les 8 champs d'un formulaire continu.
Ci-dessous le code du premier filtre :
et ci-dessous la fonction générale qui lie tous les filtres du formulaire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Private Sub Filter1_Change() Texte49.SetFocus Filter1.SetFocus FILTRE_FORM If Sum_filter Like "" Then Me.FilterOn = False Filter1.SetFocus Else Me.Filter = Sum_filter Me.FilterOn = True End If End Sub
Les champs sont aussi différents que des dates, du texte et des numéros.
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 Private Sub FILTRE_FORM() Dim I As Integer Dim CTL As String Sum_filter = "" CTL = "Filter1" I = 1 Do Until I = 10 'Nb de filtre + 1 If Me.Controls(CTL) <> "" Then If Sum_filter <> "" Then Sum_filter = Sum_filter & " AND " Sum_filter = Sum_filter & "([champ" & I & "] LIKE '" & Me.Controls(CTL) & "*')" End If I = I + 1 CTL = "Filter" & I Loop End Sub
Le premier champ correspond à un numéro de mission : 1,2,3,...12,13,14......125, 126 jusqu'à 150.
et c'est là que le bas blesse puisque si je tape 25, il m'affiche la mission 25 et seulement celle-ci puisque je n'ai pas de mission 25x ou de missions 25xx...
Par contre, si je tape 14, j'ai la 14 mais aussi toutes les missions de 140 à 149. Ce n'est qu'un détail, me direz-vous mais je souhaiterai pouvoir affiner mon travail. Avez-vous une idée ?
Partager