Hacer invisibles los controles en Access
philippe58
-
incaout Mensajes publicados 347 Fecha de registro Estado Miembro Última intervención -
incaout Mensajes publicados 347 Fecha de registro Estado Miembro Última intervención -
Hola,
Estoy atascado con un fragmento de código VBA que permitiría hacer invisibles ciertos controles en función de un valor determinado en una lista de selección. De hecho, esta lista de selección tiene 2 posibles opciones y, en función de una u otra, debo hacer visibles ciertos controles y ocultar otros.
gracias de antemano
Estoy atascado con un fragmento de código VBA que permitiría hacer invisibles ciertos controles en función de un valor determinado en una lista de selección. De hecho, esta lista de selección tiene 2 posibles opciones y, en función de una u otra, debo hacer visibles ciertos controles y ocultar otros.
gracias de antemano
Configuración: Windows XP Internet Explorer 7.0
3 respuestas
-
Hola.
Utiliza la propiedad "visible" del control que quieres ocultar o mostrar:
control.visible = true : muestra
control.visible = false : oculta.
Saludos
IC -
Buenas noches y gracias por la información, pero no conozco nada de VB y me pregunto cómo debería iniciar este código y cómo debo llamar a mis diferentes controles.
Gracias -
Hola,
Hace falta que asocies el código a un evento para tu lista de opciones. Puedes hacer esto en la ventana de propiedades de tu lista de opciones, en la pestaña "Evento". Ahí tienes la lista de todos los eventos posibles para tu control. Por ejemplo, en el evento "onclick" si haces clic en el botón al final de la fila "..." obtienes una ventana en la que eliges "generador de código". Luego llegas a una página de VBA.
Supongamos que tu lista se llama "maliste", tendrás esto :
sub maliste_onclick()
end sub
Esto corresponde al programa que se ejecutará cada vez que hagas clic en tu lista.
Resto por agregar el código para ocultar los controles.
sub maliste_onclick()
'Muestra de nuevo todos los controles. Tomo la hipótesis de que cada fila oculta uno o varios controles,
'pero que no se acumulan
for each ctl in Controls
ctl.visible = true
next ctl
'Obtiene la fila seleccionada
choix = maliste.value
'Prueba el valor de la elección y oculta los controles correspondientes
select case choix
case "cas1" :
me.NomduControle1.visible = false
me.NomduControle3.visible = false
case "cas2" :
me.NomDuControle2.visible = false
end select
end sub
Te hace falta reemplazar "cas1" y "cas2" por los valores que se encuentran en la zona de la lista y que disparan el ocultamiento de los controles. También hay que reemplazar los "NomDuControle" por los nombres reales de los controles implicados.
También puedes elegir como disparador de evento "onchange" o "afterupdate"
Buen ánimo
IC
PD: espero no haber cometido errores de sintaxis.