Affichage conditionnel dans formulaire

Le
bogota Hors ligne
Bonjour,

Je suis débutant en Access et connais très peu de choses au langage VBA. D'autre part, je travaille sur une base de donnée, avec une version espagnole d'Access 2007 (sic).

Dans mon formulaire, je cherche à conditionner l'affichage du champ B à ce que l'utilisateur sélectionne dans la liste déroulante du champ A.

En pratique, je souhaite :
- que le champ B ne soit pas affiché à l'ouverture du formulaire.
- que, si je sélectionne "Si" dans la liste du champ A, le champ B apparaisse
- que, si je sélectionne "No" dans la liste du champ A, le champ B reste invisible

Jusqu'ici, j'ai réussi à faire que le B devienne invisible quand je sélectionne "No" en A. Mais, rien à faire, dès que j'ouvre mon formulaire, bien que le champ A ne soit pas encore renseigné, le champ B est visible. Or je souhaiterais qu'il soit invisible dès l'ouverture du formulaire.

Voici mon code :
Private Sub ChampA_Change()
If ChampA.Text = "Si" Then
ChampB.Visible = True
Else:ChampB.Visible = False
End If
End Sub

Vu que c'est pour un usage professionnel, votre aide est plus que la bienvenue !
Un grand merci d'avance.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
3stone
Le #23059751
Salut,

bogota wrote:
Bonjour,

Je suis débutant en Access et connais très peu de choses au langage
VBA. D'autre part, je travaille sur une base de donnée, avec une
version espagnole d'Access 2007 (sic).

Dans mon formulaire, je cherche à conditionner l'affichage du champ
B à ce que l'utilisateur sélectionne dans la liste déroulante du
champ A.

En pratique, je souhaite :
- que le champ B ne soit pas affiché à l'ouverture du formulaire.
- que, si je sélectionne "Si" dans la liste du champ A, le champ B
apparaisse
- que, si je sélectionne "No" dans la liste du champ A, le champ B
reste invisible

Jusqu'ici, j'ai réussi à faire que le B devienne invisible quand je
sélectionne "No" en A. Mais, rien à faire, dès que j'ouvre mon
formulaire, bien que le champ A ne soit pas encore renseigné, le
champ B est visible. Or je souhaiterais qu'il soit invisible dès
l'ouverture du formulaire.

Voici mon code :
Private Sub ChampA_Change()
If ChampA.Text = "Si" Then
ChampB.Visible = True
Else:ChampB.Visible = False
End If
End Sub






Commence par fixer les propriétés visible par défaut selon tes souhaits.

Ensuite, il faut utiliser l'événement "sur après mise à jour" de
la zone de texte concernée... et être succint :

ZoneDeTexte1.Visible = (autreZoneDeTexte = false)

ou

ZoneDeTexte2.Visible = Not (autreZoneDeTexte = "Si")

Les mêmes conditions sont à répéter dans l'événement "Sur activation"
du formulaire pour que les propriétés s'adaptent lorsque tu feuillettes
simplement dans les enregistrements!

Vu que c'est pour un usage professionnel, votre aide est plus que la
bienvenue !





Encore faut-il réaliser une base... professionnelle ;-)

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
bogota Hors ligne
Le #23170691
3stone a écrit le 28/01/2011 à 00h29 :
Salut,

bogota wrote:
Bonjour,

Je suis débutant en Access et connais très peu de choses au
langage
VBA. D'autre part, je travaille sur une base de donnée, avec une
version espagnole d'Access 2007 (sic).

Dans mon formulaire, je cherche à conditionner l'affichage du champ
B à ce que l'utilisateur sélectionne dans la liste
déroulante du
champ A.

En pratique, je souhaite :
- que le champ B ne soit pas affiché à l'ouverture du
formulaire.
- que, si je sélectionne "Si" dans la liste du champ A, le
champ B
apparaisse
- que, si je sélectionne "No" dans la liste du champ A, le
champ B
reste invisible

Jusqu'ici, j'ai réussi à faire que le B devienne invisible
quand je
sélectionne "No" en A. Mais, rien à faire, dès
que j'ouvre mon
formulaire, bien que le champ A ne soit pas encore renseigné, le
champ B est visible. Or je souhaiterais qu'il soit invisible dès
l'ouverture du formulaire.

Voici mon code :
Private Sub ChampA_Change()
If ChampA.Text = "Si" Then
ChampB.Visible = True
Else:ChampB.Visible = False
End If
End Sub








Commence par fixer les propriétés visible par défaut selon
tes souhaits.

Ensuite, il faut utiliser l'événement "sur après mise
à jour" de
la zone de texte concernée... et être succint :

ZoneDeTexte1.Visible = (autreZoneDeTexte = false)

ou

ZoneDeTexte2.Visible = Not (autreZoneDeTexte = "Si")

Les mêmes conditions sont à répéter dans
l'événement "Sur activation"
du formulaire pour que les propriétés s'adaptent lorsque tu
feuillettes
simplement dans les enregistrements!

Vu que c'est pour un usage professionnel, votre aide est plus que la
bienvenue !







Encore faut-il réaliser une base... professionnelle ;-)

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)


Bonjour Pierre,

Désolé de ne répondre que maintenant mais un très grand merci d'avoir pris le temps de résoudre mon problème !

Cordialement.
Publicité
Poster une réponse
Anonyme