Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

filtrer un sous-formulaire

7 réponses
Avatar
lectriceNews
Bonjour,

dans un formulaire avec un sous-formulaire continu
je souhaite fltrer le sous-formulaire d'après une valeur choisie dans un
contrôle situé dans le formulaire principal.

1° je définis le filtre : "filter = [ChampContenantCritère]" : OK

2° filterOn = true
ceci l'applique à l'ensemble du formulaire et
je me retrouve sur un nouvel enregistrement

si j'essaie d'appliquer le filtre au sous-form avec
me![nomSousForm].form.filterOn = true
rien ne se produit.

Merci pour votre aide
--
-------------------------
LectriceNews
A tous merci. Que d'infos, ce sont de vrais trésors
------------------------

7 réponses

Avatar
3stone
Salut,

"lectriceNews"
| dans un formulaire avec un sous-formulaire continu
| je souhaite fltrer le sous-formulaire d'après une valeur choisie dans un
| contrôle situé dans le formulaire principal.
|
| 1° je définis le filtre : "filter = [ChampContenantCritère]" : OK
|
| 2° filterOn = true
| ceci l'applique à l'ensemble du formulaire et
| je me retrouve sur un nouvel enregistrement
|
| si j'essaie d'appliquer le filtre au sous-form avec
| me![nomSousForm].form.filterOn = true
| rien ne se produit.


Tu as un "véritable" sous-formulaire ?
relié au formulaire principal par un champ "père/fils" ?

autrement dit:
y a t-il une relation entre la source du formulaire principal
et la source du sous-formulaire ?

- si oui, tu n'as pas à faire de filtre...
les données "suivent" automatiquement!

- si non, renseigne tu bien le filtre ?
Me!SousForm.Form.Filter = "[NoClient]3456"
Me!SousForm.Form.FilterOn = True


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
lectriceNews
Bonne journée, (la nuit pour moi)

3stone wrote:
Salut,

"lectriceNews"
dans un formulaire avec un sous-formulaire continu
je souhaite fltrer le sous-formulaire d'après une valeur choisie
dans un contrôle situé dans le formulaire principal.

1° je définis le filtre : "filter = [ChampContenantCritère]" : OK

2° filterOn = true
ceci l'applique à l'ensemble du formulaire et
je me retrouve sur un nouvel enregistrement

si j'essaie d'appliquer le filtre au sous-form avec
me![nomSousForm].form.filterOn = true
rien ne se produit.



Tu as un "véritable" sous-formulaire ?
relié au formulaire principal par un champ "père/fils" ?

autrement dit:
y a t-il une relation entre la source du formulaire principal
et la source du sous-formulaire ?

- si oui, tu n'as pas à faire de filtre...
les données "suivent" automatiquement!


oui j'ai bien un "véritable" sous formulaire mais précision : je voulais
filtrer par rapport à un contrôle indépendant (contrôle date) pour limiter
les enregistrements du sous-formulaire


- si non, renseigne tu bien le filtre ?
Me!SousForm.Form.Filter = "[NoClient]3456"
Me!SousForm.Form.FilterOn = True


Ceci résoud le problème il fallait que je précise - dans sa "définition" -
que le filtre concerne le sous-formulaire et pas seulement lors de
l'application du filtre par FilterOn

Merci à vous.
--
-------------------------
LectriceNews
A tous merci. Que d'infos, ce sont de vrais trésors
------------------------


Avatar
lectriceNews
reBonsoir,

comme déjà communiqué : merci de la réponse précédente

Encore une petite question complémentaire :
quelle est la syntaxe pour exécuter exactement la même chose qu'avec l'icône
"entonnoir" afin d'enlever le filtre appliqué précédemment.

j'ai essayé de définir le filtre " = "" (chaine vide) et de l'appliquer.
Cela me restitue mes enregistrements mais pas l'affichage des zones de
listes déroulantes (fermées bien sûr) telles qu'elles sont restituées
complétement avec l'icône

Merci
--------------------

lectriceNews wrote:
Bonne journée, (la nuit pour moi)

3stone wrote:
Salut,

"lectriceNews"
dans un formulaire avec un sous-formulaire continu
je souhaite fltrer le sous-formulaire d'après une valeur choisie
dans un contrôle situé dans le formulaire principal.

1° je définis le filtre : "filter = [ChampContenantCritère]" : OK

2° filterOn = true
ceci l'applique à l'ensemble du formulaire et
je me retrouve sur un nouvel enregistrement

si j'essaie d'appliquer le filtre au sous-form avec
me![nomSousForm].form.filterOn = true
rien ne se produit.



Tu as un "véritable" sous-formulaire ?
relié au formulaire principal par un champ "père/fils" ?

autrement dit:
y a t-il une relation entre la source du formulaire principal
et la source du sous-formulaire ?

- si oui, tu n'as pas à faire de filtre...
les données "suivent" automatiquement!


oui j'ai bien un "véritable" sous formulaire mais précision : je
voulais filtrer par rapport à un contrôle indépendant (contrôle date)
pour limiter les enregistrements du sous-formulaire


- si non, renseigne tu bien le filtre ?
Me!SousForm.Form.Filter = "[NoClient]3456"
Me!SousForm.Form.FilterOn = True


Ceci résoud le problème il fallait que je précise - dans sa
"définition" - que le filtre concerne le sous-formulaire et pas
seulement lors de l'application du filtre par FilterOn

Merci à vous.
--
-------------------------
LectriceNews
A tous merci. Que d'infos, ce sont de vrais trésors
------------------------




Avatar
3stone
re, ;-)

"lectriceNews"
| quelle est la syntaxe pour exécuter exactement la même chose qu'avec l'icône
| "entonnoir" afin d'enlever le filtre appliqué précédemment.
|


Me.Filter = ""
Me.FilterOn = False


c'est cela que tu cherche ?


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
lectriceNews
Quelle rapidité ! merci

3stone wrote:
re, ;-)

"lectriceNews"
quelle est la syntaxe pour exécuter exactement la même chose qu'avec
l'icône "entonnoir" afin d'enlever le filtre appliqué précédemment.




Me.Filter = ""
Me.FilterOn = False


c'est cela que tu cherche ?


c'est bien de ce côté que j'ai cherché mais ça ne résoud pas le problème.
Mes deux zones de liste déroulantes que j'ai (dans le sous-formulaire) afin
de faciliter l'encodage se retrouvent vides à l'affichage après cette
syntaxe.
Ce n'est pas le cas avec l'icône "entonnoir"

A l'affichage = les données ne sont pas perdues : tout se réaffiche si je
clique 2 x sur l'icône entonnoir.

de plus j'ai un autre souci :
les deux listes déroulantes sont paramétrées en fonction d'un contrôle dans
le formulaire principal afin de restreindre le choix.
Quand je change d'enregistrement (formulaire principal) elles ne se mettent
pas à jour cad que le changement de paramètre n'est pas pris en compte.

L'idée a été de restreindre les encodages par catégorie : une catégorie par
enregistrement du formulaire principal.
Les différents éléments de la catégore sont filtrés (par le paramètre contrôle du formulaire principal) et présentés dans les listes.
Leurs valeurs sont encodées dans les enregistrement du sous-formulaire

A bientôt

--
-------------------------
LectriceNews
A tous merci. Que d'infos, ce sont de vrais trésors
------------------------


Avatar
3stone
Salut,

"lectriceNews"
| > Me.Filter = ""
| > Me.FilterOn = False
| >
|
| c'est bien de ce côté que j'ai cherché mais ça ne résoud pas le problème.
| Mes deux zones de liste déroulantes que j'ai (dans le sous-formulaire) afin
| de faciliter l'encodage se retrouvent vides à l'affichage après cette
| syntaxe.
| Ce n'est pas le cas avec l'icône "entonnoir"


et...

DoCmd.ShowAllRecords



|
| A l'affichage = les données ne sont pas perdues : tout se réaffiche si je
| clique 2 x sur l'icône entonnoir.
|
| de plus j'ai un autre souci :
| les deux listes déroulantes sont paramétrées en fonction d'un contrôle dans
| le formulaire principal afin de restreindre le choix.
| Quand je change d'enregistrement (formulaire principal) elles ne se mettent
| pas à jour cad que le changement de paramètre n'est pas pris en compte.
|
| L'idée a été de restreindre les encodages par catégorie : une catégorie par
| enregistrement du formulaire principal.
| Les différents éléments de la catégore sont filtrés (par le paramètre | contrôle du formulaire principal) et présentés dans les listes.
| Leurs valeurs sont encodées dans les enregistrement du sous-formulaire


dans l'événement "Sur activation" (form_Current) tu dois peut-être
raffraîchir le sous formulaire...

Me!SousForm.Form.Refresh ou .Requery


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
lectriceNews
salut aussi,

3stone wrote:
Salut,

"lectriceNews"
Me.Filter = ""
Me.FilterOn = False



c'est bien de ce côté que j'ai cherché mais ça ne résoud pas le
problème. Mes deux zones de liste déroulantes que j'ai (dans le
sous-formulaire) afin de faciliter l'encodage se retrouvent vides à
l'affichage après cette syntaxe.
Ce n'est pas le cas avec l'icône "entonnoir"



et...

DoCmd.ShowAllRecords


avec un bookmark ds la ligne précédente pour rester sur le même

enregistrement c'est OK




A l'affichage = les données ne sont pas perdues : tout se réaffiche
si je clique 2 x sur l'icône entonnoir.

de plus j'ai un autre souci :
les deux listes déroulantes sont paramétrées en fonction d'un
contrôle dans le formulaire principal afin de restreindre le choix.
Quand je change d'enregistrement (formulaire principal) elles ne se
mettent pas à jour cad que le changement de paramètre n'est pas pris
en compte.

L'idée a été de restreindre les encodages par catégorie : une
catégorie par enregistrement du formulaire principal.
Les différents éléments de la catégore sont filtrés (par le
paramètre = contrôle du formulaire principal) et présentés dans les
listes.
Leurs valeurs sont encodées dans les enregistrement du
sous-formulaire



dans l'événement "Sur activation" (form_Current) tu dois peut-être
raffraîchir le sous formulaire...

Me!SousForm.Form.Refresh ou .Requery



avec refresh ça fonctionne
D'ailleurs avec refresh les deux syntaxes : filterOn ou Docmd fonctionnent
toutes les deux.

Tout est OK à ce stade.

Merci encore
--
-------------------------
LectriceNews
A tous merci. Que d'infos, ce sont de vrais trésors
------------------------