Filtres enchaînés sur formulaire continu
Bonjour à tous,
Sur un formulaire continu, j'ai constitué outre des champs de tri, huit filtres... (aspect en pièce jointe).
Ils fonctionnent tous correctement individuellement... Seulement je souhaiterais lorsque j'ai déjà sélectionné ou filtré par "AMB" pouvoir enchaîner avec "INF" comme l'exemple sur l'attachement... Or, ils se comportent individuellement.
1) Que dois je rajouter à mon code ci-dessous (il s'agit bien sûr que celui attaché à un seul filtre) pour garder " en mémoire" le filtre précédent ?
2) Question secondaire : une fois les filtrages effectués, faut-il que je crée un bouton pour "rafraîchir" la liste comme initiale (afin d'effacer tous les caractères dans chaque champ de filtre) ou bien existe-t-il une solution plus harmonieuse ?
Merci de votre aide précieuse qui m'a permis depuis maintenant trois mois de faire de sérieux progrès.
F
Code:
1 2 3 4 5 6 7 8 9 10 11
| Private Sub filtreidentité_AfterUpdate()
Texte49.SetFocus
filtreidentité.SetFocus
If IsNull(filtreidentité) Then
Me.FilterOn = False
filtreidentité.SetFocus
Else
Me.Filter = "[Employés.Nom] like '" & filtreidentité & "*'"
Me.FilterOn = True
End If
End Sub |
Filtres et formulaire continu
Merci pour cette réponse, mais je planche depuis longtemps sur ce problème en vain. Je ne comprends pas bien la façon dont écrire le code... Je joins ci-dessous le deuxième filtre concerné... Peux tu m'écrire la syntaxe complète car mes essais ont été infructueux jusqu'alors
Code:
1 2 3 4 5 6 7 8 9 10 11
| Private Sub filtrefonction_AfterUpdate()
Texte49.SetFocus
filtrefonction.SetFocus
If IsNull(filtrefonction) Then
Me.FilterOn = False
filtrefonction.SetFocus
Else
Me.Filter = "Fonction like '" & filtrefonction & "*'"
Me.FilterOn = True
End If
End Sub |
multifiltrage et formulaire continu
Merci bien pour cette communication mais je n'ai toujours pas solutionné mon problème. Peut on personnaliser la tréponse en fonction de ce que j'ai déjà écrit ?
Merci pour votre aide.
F
filtres multiples formulaires
Bonjour,
Oh là loin de moi cette idée de ne pas m'intéresser aux réponses des gens tous plus expérimentés que moi sur ce site...
Pourquoi séparer les filtres ? tout simpelment parce qu'en début de conception j'avais concçu (avec mes maigres connaissances de l'époque) des filtres sur chaque colonne dans le même esprit que le tri par ordre alpha... C'était au début.. Maintenant à l'usage effectivement je pense que l'idée de grouper est meilleure mais je souhaitais garder le principe du formulaire sans avoir à sortir pour activer un quelconque moteur de reccherche. Je vois bien que ton code est attaché à un bouton de comande et donc prbablement à un formulaire où seraient sélectionnés chaque critère...
Rien de plus, je suis tel un débutant qui cheche la meilleure solution pour un usage optimal...
Merci
Filtres indépendants Formulaire continu
Bonjour,
La navigation dans le Pacifique m'a donné du temps et surtout permis de faire la synthèse de toutes les réponses reçues ainsi que les aides au travers des forums. Je vous en remercie.
Aussi voici ci-dessous le code qui m'a permis de débrouiller le problème et d'arriver à une solution sympa de filtrage au travers de plusieurs champs indépendants situés au dessus de colonnes d'un formulaire continu issu d'une requête...
Code:
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 |
*****************************
Code:
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
| Private Sub Filter1_change() 'pour le filter1
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
Private Sub Filter2_change() 'pour le filter2
Texte49.SetFocus
Filter2.SetFocus
FILTRE_FORM
If Sum_filter Like "" Then
Me.FilterOn = False
Filter2.SetFocus
Else
Me.Filter = Sum_filter
Me.FilterOn = True
End If
End Sub |
et ainsi de suite selon le nombre de filtres (9 dans mon cas).
Remarque : le dernier écueil rencontré a été de pouvoir faire fonctionner ce code sur l'événement "Change"... Il faut de ce fait paramétrer access dans le menu Options/Clavier sur Comportement du champ en entrée = fin du champ.
J'espère que cela sera utile à d'autres.
Merci encore pour votre aide.