Ocultar ver, etiquetas access

Me parece que he metido la pata y he puesto el enunciado como titulo, si es así, il perdones.
Antes de nada, gracias por vuestra colaboración. Tengo el siguiente problema: En un formulario de access tengo así como 20 casillas de verificación y junto a ellas hay una pequeña imagen a modo de etiqueta. Al ser tantas las casillas es dificila primera vista cuales están seleccionadas y cuales no, por lo que me gustaría poner debajo de las casillas una pequeña etiqueta que al activar la casilla apareciera de color rojo y al estar desactivada no apareciera. Esto lo he conseguido mediante una macro y las acciones definir propiedad y las condiciones de que si la casilla es -1 o 0. El problema es que al cambiar de registro las etiquetitas no se actualizan, es decir si la verificación 1 en el registro anterior estaba activada aunque en el registro siguiente este desactivada la etiquetita se mantiene visible aunque en sus propiedades es no visible.

1 respuesta

Respuesta
1
Yo asignaría un procedimiento de evento a cada casilla de modo que cada vez que la actualices haga algo, por ejemplo, cambiar el color de otro control.
Para hacerlo, en modo diseño, edita las propiedades de cada casilla, y en la pestaña de eventos elige "Procedimiento de evento" en "Después de actualizar".
Una vez hecho esto, pulsa el botón con los tres puntos que hay a la derecha y entrarás en el editor de Visual Basic
Supongamos que una casilla se llama chkVerifica1, y que la imagen a modo de etiqueta para esa casilla es imgEtiq1
Pues bien, en el editor de VB te tendría que salir algo así como
Sub chkVerifica1_AfterUpdate()
End Sub
Entre esas dos líneas escribe
if chkVerifica1.Value = true then
imgEtiq1.backcolor=255     'rojo
imgEtiq1.visible=true
else
imgEtiq1.visible=false
Endif
Prueba con eso a ver que tal, y nos cuentas si funciona o no
Amigo Teroles, gracias por responder y tan rápido. Como me dices he copiado el código renombrando los nombres de la etiqueta y la casilla de verificación y funciona correctamente, muestra u oculta la etiqueta según este la casilla de verificación. Pero el problema persiste, cuando cambio al siguiente registro en el formulario, la etiqueta se mantiene en rojo aunque la casilla de verificación no este seleccionada. Esto es una base de datos que estoy haciendo para una colección de trenes en miniatura. El formulario en lugar de ser todo seguido tengo dos páginas o fichas donde en la primera pongo los datos normales como nombre, marca, fabicante, fecha de compra etc. y en la segunda página están los detalles longituda, color, antigüedad, imagen, y un montón de símbolos cada uno con su casilla de verificación con los cuales se si tienen decodificador, luces traseras, luces delanteras... Al ser tantos es un poco difícil al primera vista ver cuales han sido seleccionados de hay mi idea de poner algo debajo de la verificación que hiciera ver rápidamente su estado. He intentado cambiar el fondo de la casilla pero no lo consigo y si lo consigo en el siguiente registro se mantiene en el mismo estado que el anterior aunque la casilla este en falso.
Gracias
Entiendo...
Veamos, entra en la ventana del editor de tu formulario y haz clic en el botón Ver Código. Entrarás en la ventana de Visual Basic.
Al final de todo escribe:
private sub PreparaPantalla()
VB escribirá:
End Sub
entre estas dos líneas escribe, para cada uno de los controles de verificación:
if chkVerifica1.Value = true then
    imgEtiq1.backcolor=255     'rojo
    imgEtiq1.visible=true
else
    imgEtiq1.visible=false
endif
if chkVerifica2.Value = true then
    imgEtiq2.backcolor=255     'rojo
    imgEtiq2.visible=true
else
    imgEtiq2.visible=false
Endif
Etc
Tras esto, borra el código que tienes para cada AfterUpdate de cada control (que es el que tendrás que haber cortado/pegado para hacer esta función)
Dentro de cada Sub AfterUpdate de cada control escribe PreparaPantalla
De este modo, cada vez que se modifique cada control revisará todos los de la pantalla.
Cierra y guarda el formulario
Ábrelo de nuevo en modo diseño
Abre la ventana de propiedades y en Eventos busca la opción Al activar registro. Haz doble clic hasta que aparezca Procedimiento de evento y después el botón de los tres puntos que hay a la derecha
Cuando se abra VB estarás en Sub Form_Current
Teclea también
PreparaPantalla
Guárdalo, ciérralo y prueba a ver que tal
Amigo teroles
Perfecto, extraordinario, funciona a la perfección. No sabes las horas de sueño que me has dado.
Aunque he hecho mis pintos en VB, veo que me queda mucho por aprender.
Aún queda buena gente y gente buena por el mundo.
Saludos de momento, pues creo que tendré más problemas.
Repito gracias, gracias.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas