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

Rendre visible un Sous-Etat si un autre = NoData

2 réponses
Avatar
domivax
Bonjour =E0 tous,

J'ai un Etat (EtatPrincipal) avec deux Sous-Etats (Sous-Etat01 & Sous-
Etat02) qui se superposent.

Mon Sous-Etat01 sera toujours aliment=E9 de donn=E9es.

Mon Sous-Etat02 sera des fois aliment=E9 et des fois non en fonction
d'une requ=EAte impl=E9ment=E9e.

Comment faire pour :

Si mon Sous-Etat02 est aliment=E9 de donn=E9es, tu mets mon Sous-
Etat01.Visible =3D False

Puisque qu'il y a le code =E9v=E9nement NoDate, j'ai pens=E9 de faire le
contraire comme cela :

Je mets mon Sous-Etat01.Visible =3D False =E0 d=E9faut
et sous l'=E9v=E9nement "Sur aucune donn=E9e" de mon Sous-Etat02

Private Sub Report_NoData(Cancel As Integer)
Report! EtatPrincipal!Ent=EAte01! Sous-Etat01.Visible =3D True
End Sub

Mais =E7a ne marche pas !

O=F9 est l'erreur ?

Merci pour votre aide.
Xavier

2 réponses

Avatar
Thierry (ze Titi)
Bonjour Xavier !

Plus simplement, dans l'évènement "Sur impression" de la section où
sont insérés tes sous-états, tu testes le recordset de ton sous-Etat02
et tu traites l'affichage de ton sous-état01 en conséquence:

If Me.[Sous-Etat02].Report.RecordsetClone.RecordCount=0 Then
Me.[Sous-Etat01].Visibleúlse
Else
Me.[Sous-Etat01].Visible=True
End If

A tester, je ne suis pas certain que l'on puisse tester le recordset
d'un état...

Message du samedi 06/10/2007

Bonjour à tous,

J'ai un Etat (EtatPrincipal) avec deux Sous-Etats (Sous-Etat01 & Sous-
Etat02) qui se superposent.

Mon Sous-Etat01 sera toujours alimenté de données.

Mon Sous-Etat02 sera des fois alimenté et des fois non en fonction
d'une requête implémentée.

Comment faire pour :

Si mon Sous-Etat02 est alimenté de données, tu mets mon Sous-
Etat01.Visible = False

Puisque qu'il y a le code événement NoDate, j'ai pensé de faire le
contraire comme cela :

Je mets mon Sous-Etat01.Visible = False à défaut
et sous l'événement "Sur aucune donnée" de mon Sous-Etat02

Private Sub Report_NoData(Cancel As Integer)
Report! EtatPrincipal!Entête01! Sous-Etat01.Visible = True
End Sub

Mais ça ne marche pas !

Où est l'erreur ?

Merci pour votre aide.
Xavier


--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info

Avatar
domivax
Bonsoir Thierry,

Malheureusement ça ne marche pas.

Alors j'ai contourné le problème comme ceci :

J'ai crée une requete (MaRequete) qui alimente également mon Sous-
Etat02 et j'ai placé un TextBox (MonTextBox) dans mon état avec la
valeur :

=CpteDom("MonChamp";"MaRequete")

et Sur impression

If Me.[MonTextBox] = 0 Then
Me.[Sous-Etat01].Visibleúlse
ElseIf Me.[MonTextBox] = 1 Then
Me.[Sous-Etat01].Visible=True
End If

Merci pour ton aide.
Bonne soirée
Xavier