Hacer invisibles los controles en Access

philippe58 -  
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
Configuración: Windows XP Internet Explorer 7.0

3 respuestas

  1. incaout Mensajes publicados 347 Fecha de registro   Estado Miembro Última intervención   74
     
    Hola.

    Utiliza la propiedad "visible" del control que quieres ocultar o mostrar:

    control.visible = true : muestra
    control.visible = false : oculta.

    Saludos

    IC
    0
  2. philippe58
     
    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
    0
  3. incaout Mensajes publicados 347 Fecha de registro   Estado Miembro Última intervención   74
     
    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.
    0