Rendre invisible des contrôles dans access

philippe58 -  
incaout Messages postés 347 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je suis bloqué sur bout de code VBA qui permettrait de rendre invisible certains contrôles en fonction d'une valeur déterminée dans une liste de choix. En effet, cette liste de choix comporte 2 possibilités et en fonction de l'une ou de l'autre je dois rendre visible certains contrôles et masquer d'autres.
merci d'avance

3 réponses

incaout Messages postés 347 Date d'inscription   Statut Membre Dernière intervention   74
 
Salut.

Utilise la propriété "visible" du controle que tu veux masquer ou afficher :

controle.visible = true : affiche
controle.visible = false : masque.

Cdlt

IC
0
philippe58
 
Bonsoir et merci pour l'info, mais je ne connais pas du tout vb et je me demande comment je dois démarrer ce code et comment je dos appeler mes différents controles.
Merci
0
incaout Messages postés 347 Date d'inscription   Statut Membre Dernière intervention   74
 
Salut,

Il faut que tu associes le code à un événement pour ta liste de choix. Tu peux faire ceci dans la fenêtre des propriétés de ta liste de choix dans l'onglet "Evenement". Là tu as la liste de tous les événements possibles pour ton controle. Par exemple, sur l'événement "onclick" si tu cliques sur le bouton en fin de ligne "...", tu as une fenêtre dans laquelle tu choisis "générateur de code". Tu arrives ensuite dans une page VBA.

Supposons que ta liste se nomme "maliste", tu auras ceci :

sub maliste_onclick()

end sub

Ceci correspond au programme qui sera exécuté chaque fois que tu cliqueras sur ta liste.

Reste donc à ajouter le code pour masquer les controles.

sub maliste_onclick()

'Reaffiche tous les contrôles. Je prend l'hypothèse que chaque ligne masque un ou plusieurs controle,
'mais qu'elles ne se cumulent pas

for each ctl in Controls
ctl.visible = true
next ctl

'Récupère la ligne sélectionnée
choix = maliste.value

'Teste la valeur du choix et masque les controles correspondant

select case choix

case "cas1" :
me.NomduControle1.visible = false
me.NomduControle3.visible = false

case "cas2" :
me.NomDuControle2.visible = false

end select

end sub

Il te faut remplace "cas1" et "cas2" par les valeurs se trouvant dans la zone de liste et déclenchant le masquage des controles. Il faut aussi remplacer les "NomDuControle" par les véritables noms des controles concernés.

Tu peux aussi choisir comme événement déclencheur "onchange" ou "afterupdate"

Bon courage

IC

PS : j'espère ne pas avoir fait d'erreurs de syntaxe.
0