** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Ocultar/mostrar imagen segun valor Checkbox
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoOcultar/mostrar imagen segun valor Checkbox

 Responder Responder
Autor
Mensaje
toño Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 07/Noviembre/2015
Localización: ESPAÑA
Estado: Sin conexión
Puntos: 21
Enlace directo a este mensaje Tema: Ocultar/mostrar imagen segun valor Checkbox
    Enviado: 19/Marzo/2020 a las 18:23
Hola a todos, tengo un informe y en función del valor de un Checkbox (activado/desactivado), muestra/oculta unas imágenes, lo he probado para un Checkbox y me funciona a la perfección, pero quiero aplicarlo a más Checkbox (CHECKBOX2, CHECBOX3.....) dentro del mismo informe y me pierdo un poco, mis conocomientos aun son muy limitados, y no se si voy por el buen camino, no se si es buena idea seguir con la estructura If…Then…Else…End If o mejor buscar otra opción,se agradece cualquier sugerencia, comentario o ayuda.
-----------------------------------------------------------------------
If Me.[CHEKBOX1].OldValue Then

        Me.[IMAGEN1].Visible = True
        Me.[IMAGEN2].Visible = False

      
    Else
        Me.[IMAGEN1].Visible = False
        Me.[IMAGEN2].Visible = True
      
      
 End If
--------------------------------------------------------------------------

Muchas gracias
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14734
Enlace directo a este mensaje Enviado: 19/Marzo/2020 a las 19:33
Hola,

Para empezar me sorprende el uso de OldValue... Supongo que no te afecta porque OldValue y Value deben valer lo mismo.

En cuanto a la estructura que expones, es simplificable. A fin de cuentas debes asignar un valor True/False a la propiedad Visible de una imagen. Y los CheckBox admiten True/False. Añadiendo a la expresión (si es necesario) el operador Not, ya lo tienes.

Imaginemos que IMAGEN1 sólo se muestra si CheckBox1 está marcado
Me!IMAGEN1.Visible = Me!CheckBox1

Imaginemos que IMAGEN! solo se muestra si CheckBox1 *no* está marcado
Me!IMAGEN1.Visible = Not Me!CheckBox1

Si lo que tienes es una colección de imagenes numerada y de sus correspondientes checkbox tambien numerados, lo puedes simplificar tal que así. 

(imaginamos 10 parejas y que marcado = visible)

For i = 1 To 10
  Me("IMAGEN" & i).Visible = Me("CheckBox" & i)
Next

Espero te sirva.

Un saludo


Xavi, un minyó de Terrassa

Mi web
Arriba
toño Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 07/Noviembre/2015
Localización: ESPAÑA
Estado: Sin conexión
Puntos: 21
Enlace directo a este mensaje Enviado: 19/Marzo/2020 a las 21:14
Buenas tardes Xavi, lo primero muchas gracias por tu ayuda, como dije no tengo mucho conocimiento, estoy tratando de aprender algo por mi cuenta a traves de vuestros foros, usé OldValue ya que la propiead Value no me aparece, así me funcionaba lo que pretendía realizar.

He aplicado tú primer método y me funciona a la perfección lo que necesitaba que era en función de cada uno de los 6 checkbox muestra una imagen cuando está activado y otra imagen cuando no lo está, lo único supone 12 líneas
  
        Me.img1.Visible = Me ![chk1]
        Me.img2.Visible = Not Me![chk1]
        Me.img3.Visible = Me![chk2]
        Me.img4.Visible = Not Me![chk2]
        Me.img5.Visible = Me![chk3]
        Me.img6.Visible = Not Me![chk3]
        Me.img7.Visible = Me![chk4]
        Me.img8.Visible = Not Me![chk4]
        Me.img9.Visible = Me![chk5]
        Me.img10.Visible = Not Me![chk5]
        Me.img11.Visible = Me![chk6]
        Me.img12.Visible = Not Me![chk6]

Mas adelante probaré con el metodo For i To Next

Muchas gracias de nuevo
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable