OVH Cloud OVH Cloud

Etat sur formulaire filtré

1 réponse
Avatar
Bauwens François
Bonjour,

J'ai un problème pour (1) réaliser un état sur base d'un formulaire filtré
et (2) pour filtrer un formulaire et son sous-formulaire

(1)
J'ai utiliser "un code issu de acess en action", l'exemple sur le cd-rom
fonctionne plus ou moins bien (il y a des problèmes) mais dans ma base ça ne
fonctionne pas du tout.

Dans mon formulaire "associations" qui comprend un sous-formulaire, j'ai
placé un bouton qui ouvre un état

code : DoCmd.OpenReport "etat", View:=acPreview

DAns mon etat j'ai un code sur ouverture

Code :
Private Sub Report_Open(Cancel As Integer)

Dim frmFilter As Form

Const acbcFilterFrm = "formulaire"
Const acbcFilterSubFrmCtl = "sous-formulaire"

' Le formulaire de filtre de l'état est-il ouvert ?
If SysCmd(acSysCmdGetObjectState, acForm, acbcFilterFrm) <> 0 Then

Set frmFilter = Forms(acbcFilterFrm)

' Le formulaire est-il actuellement filtré ?
If frmFilter.FilterOn Then
' Initialiser le filtre de l'état au filtre du sous-formulaire.
Me.Filter = frmFilter(acbcFilterSubFrmCtl).Form.Filter
' Si le formulaire de filtre ne comportait pas de
sous-formulaire,
' employez plutôt la syntaxe (plus simple) ci-dessous :
' Me.Filter = frmFilter.Filter
Me.FilterOn = True
Me.Caption = Me.Caption & " (filtré)"
End If

End If

End Sub

A priori l'introduction de ces deux codes devraient faire fonctionner le
bouton mais il ne tient aucun compte du filtre et me sort toujours la liste
complète des associations qui ont des données dans le sous-formulaire !

J'ai consulté le post "impression sur formulaire filtré" j'ai tenté
d'adapter mais sans succès...

(2) Est-il normal de ne pouvoir introduire des données pour filtrer que dans
le formulaire de base. Tout critère introduit dans le sous-formualaire
n'entre pas en compte dans le filtrage ?


Merci et une magnifique semaine à tous !
Frans

1 réponse

Avatar
Bauwens François
Je suis parvenu, dans une version test simplifiée, à faire fonctionner le
code (il faut obligatoirement créer un formulaire, contenant le bouton de
commande et un sous formulaire, contenant le formulaire) mais le gros
problème c'est que l'outil filtre ne fonctionne qu'en mode "filtrer par
selection" et que tout ce bloque en "filtrer par formulaire" y-a-til un
moyen de l'obliger à accepter le filtre sur un sous-formulaire (cf question
(2) de mon premier post !

Merci
frans

"Bauwens François" a écrit dans le message de
news:%
Bonjour,

J'ai un problème pour (1) réaliser un état sur base d'un formulaire filtré
et (2) pour filtrer un formulaire et son sous-formulaire

(1)
J'ai utiliser "un code issu de acess en action", l'exemple sur le cd-rom
fonctionne plus ou moins bien (il y a des problèmes) mais dans ma base ça
ne

fonctionne pas du tout.

Dans mon formulaire "associations" qui comprend un sous-formulaire, j'ai
placé un bouton qui ouvre un état

code : DoCmd.OpenReport "etat", View:¬Preview

DAns mon etat j'ai un code sur ouverture

Code :
Private Sub Report_Open(Cancel As Integer)

Dim frmFilter As Form

Const acbcFilterFrm = "formulaire"
Const acbcFilterSubFrmCtl = "sous-formulaire"

' Le formulaire de filtre de l'état est-il ouvert ?
If SysCmd(acSysCmdGetObjectState, acForm, acbcFilterFrm) <> 0 Then

Set frmFilter = Forms(acbcFilterFrm)

' Le formulaire est-il actuellement filtré ?
If frmFilter.FilterOn Then
' Initialiser le filtre de l'état au filtre du
sous-formulaire.

Me.Filter = frmFilter(acbcFilterSubFrmCtl).Form.Filter
' Si le formulaire de filtre ne comportait pas de
sous-formulaire,
' employez plutôt la syntaxe (plus simple) ci-dessous :
' Me.Filter = frmFilter.Filter
Me.FilterOn = True
Me.Caption = Me.Caption & " (filtré)"
End If

End If

End Sub

A priori l'introduction de ces deux codes devraient faire fonctionner le
bouton mais il ne tient aucun compte du filtre et me sort toujours la
liste

complète des associations qui ont des données dans le sous-formulaire !

J'ai consulté le post "impression sur formulaire filtré" j'ai tenté
d'adapter mais sans succès...

(2) Est-il normal de ne pouvoir introduire des données pour filtrer que
dans

le formulaire de base. Tout critère introduit dans le sous-formualaire
n'entre pas en compte dans le filtrage ?


Merci et une magnifique semaine à tous !
Frans