Filtrer dans un formulaire
JnCoffy
-
Hugues9 Messages postés 15 Statut Membre -
Hugues9 Messages postés 15 Statut Membre -
Bonjour à tous,
Je dispose d'un formulaire qui liste le détail des opérations de transport effectuées au nom d'un client quelcoonque.
Je souhaite pouvoir filter le détail de ce formulaire selon deux paramètres
- Tout d'abord, selon une ListBox placée en en-tête de formulaire et affichant le nom de tous les clients. En fonction du choix effactué dans cette ListBox, seules les opérations de ce clients doivent s'afficher.
- Ensuite, en fonction d'un choix effectué dans un groupe d'option. Ce groupe comporte trois options : Interventions facturées, non facturées, et toutes les interventions. Selon le choix fait dans ce groupe d'option, seules les interventions correspondantes doivent être affichées, sans oublier qu'elles concernent toujours uniquement le client sélectionné dans la listBox.
J'ai essayé plusieurs méthodes, avec macro ou modules, mais rien ne marche. Dans l'exemple 'Les comptoirs' le formulaire 'Liste téléphonique des clients' répond partiellement au problème mais il ne filtre que sur un paramètre (le groupe d'options)
Je suis débutant et je ne sais pas comment faire.
Merci d'avance
Je dispose d'un formulaire qui liste le détail des opérations de transport effectuées au nom d'un client quelcoonque.
Je souhaite pouvoir filter le détail de ce formulaire selon deux paramètres
- Tout d'abord, selon une ListBox placée en en-tête de formulaire et affichant le nom de tous les clients. En fonction du choix effactué dans cette ListBox, seules les opérations de ce clients doivent s'afficher.
- Ensuite, en fonction d'un choix effectué dans un groupe d'option. Ce groupe comporte trois options : Interventions facturées, non facturées, et toutes les interventions. Selon le choix fait dans ce groupe d'option, seules les interventions correspondantes doivent être affichées, sans oublier qu'elles concernent toujours uniquement le client sélectionné dans la listBox.
J'ai essayé plusieurs méthodes, avec macro ou modules, mais rien ne marche. Dans l'exemple 'Les comptoirs' le formulaire 'Liste téléphonique des clients' répond partiellement au problème mais il ne filtre que sur un paramètre (le groupe d'options)
Je suis débutant et je ne sais pas comment faire.
Merci d'avance
A voir également:
- Filtrer dans un formulaire
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook compte désactivé - Guide
- Formulaire de reclamation instagram - Guide
- Confirmer le nouvel envoi du formulaire err_cache_miss ✓ - Forum Access
- Google Chrome : "Nouvel envoi du formulaire" - Forum Google Chrome
2 réponses
Salut
Pour ton problème, il y a une solution :
Défini un code événement "sur changement" sur chacun des deux objets (listbox et groupe d'options), qui renvoi à une sous procédure de filtre.
Dans cette sous procédure de filtre, crée ta condition SQL, mais sans le "WHERE"
Met à jour la propriété filtre de ton formulaire, puis la propriété filterOn et enfin lance le rafraichissement de celui ci... et ça marche.
bien, c'est peut être un peu confus.
Ta listebox s'appele "ListeBoxClient " et est liée au [N°Client]
Ton groupe d'option
Option1 si ton champ [transaction] est "Achat"
Option2 si ton champ [transaction] est "Vente"
Ta variable de filtre SQLTXT
Variable intermédiaire OptionTxt
Ta procédure :
Sub FitrerFormulaire()
Dim SQLTXT, OptionTXT as string
if Option1 then OptionTxt = "Achat" else OptionTxt = "Vente"
SQLTXT= "[N°Client] = ' " & ListeBoxClient & " ' "
SQLTXT = SQL TXT & = " AND [transaction] " & OptionTxt
Me.filter=SQLTXT
Me.filteron=true
Me.refresh
end sub
J'espère t'avoir aidé
Bon courrage, Hugues
Pour ton problème, il y a une solution :
Défini un code événement "sur changement" sur chacun des deux objets (listbox et groupe d'options), qui renvoi à une sous procédure de filtre.
Dans cette sous procédure de filtre, crée ta condition SQL, mais sans le "WHERE"
Met à jour la propriété filtre de ton formulaire, puis la propriété filterOn et enfin lance le rafraichissement de celui ci... et ça marche.
bien, c'est peut être un peu confus.
Ta listebox s'appele "ListeBoxClient " et est liée au [N°Client]
Ton groupe d'option
Option1 si ton champ [transaction] est "Achat"
Option2 si ton champ [transaction] est "Vente"
Ta variable de filtre SQLTXT
Variable intermédiaire OptionTxt
Ta procédure :
Sub FitrerFormulaire()
Dim SQLTXT, OptionTXT as string
if Option1 then OptionTxt = "Achat" else OptionTxt = "Vente"
SQLTXT= "[N°Client] = ' " & ListeBoxClient & " ' "
SQLTXT = SQL TXT & = " AND [transaction] " & OptionTxt
Me.filter=SQLTXT
Me.filteron=true
Me.refresh
end sub
J'espère t'avoir aidé
Bon courrage, Hugues
J'ai testé ta solution, et, après plusieurs tentatives, je suis parvenu au résultat escompté.
Merci encore pour avoir pris le temps d'étudier mon problème
Jean Noel