Filtrer dans un formulaire

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

2 réponses

Hugues
 
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
0
jncoffy
 
Merci 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
0
Hugues9 Messages postés 15 Statut Membre
 
De rien.
Si tu as d'autres difficultés, n'hésite pas a demander.
J'ai suffisamment galéré moi même avant...
A+
Hugues
0