Mostrar ocultar botón según estado casilla verificacio

Aquí sigo intentando aprender algo más de access.
Me gustaría que según el estado de una casilla de verificación (si/no), si esta esta en "Si"(marcada) me mostrara un botón y si esta en "No" (desmarcada) me ocultase el botón. Pero no lo consigo.
Este es el código que utilizo. Evento- después de actualizar de la casilla verificación
Me.Boton.Visible = Me.CasillaVerificacion
También decirte que cuando se activa un registro la casilla de verificación esta desactivada. Y la activo (junto con el resto de campos) al darle a un botom. No se si el fallo puede estar aquí, ya que la casilla esta desactivada y no deja que se ejecute el código al cambiar de registro. Cuando esta activa si que al darle me muestra o me oculta el botón, pero si cambio de registro se queda como estaba en registro anterior, no se actualiza según la casilla del registro siguiente.
Aunque lógicamente ya he probado sin que este desactivada al cambiar de registros y tampoco va
El fin de esto es que cuando activo la casilla de verificación llamada (baja) me muestra el botón(Darbaja) para borrar a un abonado.
Respuesta
1
Lo que ocurre es que el evento está asociado a que tú modifiques la casilla de verificación, por lo tanto hasta que eso no ocurra de nuevo, la propiedad visible de tu botón permanecerá igua que estaba.
Si lo que quieres es que cambie al pasar de un registro a otro asociala al evento de formulario "activar registro", así será visible o no cada vez que cambies de registro en función del valor que tenga la casilla de verificación para ese registro.
Ya lo Había probado pero al crear un nuevo registro me sale este error
Se produjo el error 94 en el tiempo de ejecución. Uso no valido del Null.
Lo he solucionado de esta forma.
En el EVENTO- DESPUÉS DE ACTUALIZAR de la casilla de verificación
If Me.CasillaVerificacion = True Then
Me.boton.Visible = True
Else
Me.Boton.Visible = False
End If
En el EVENTO- AL ACTIVAR REGISTRO del formulario
If Me.CasillaVerificacion = True Then
Me.boton.Visible = True
Else
Me.Boton.Visible = False
End If
¿Sabes por que puede dar el error con el código anterior?
Gracias
No lo sé, yo lo he probado con una base de datos que tengo y sí que me funciona, incluso cuando la casilla de verificación no está activada. Eso sí, esa casilla de verificación no es un valor flotante sino que es un valor de los registros.
Si la casilla de verificación es un valor independiente, al abrir el formulario, no es ni verdadero ni falso, no tiene valor, y por lo tanto cuando lo dices que la propiedad visible sea igual al la casilla de verificación te da error.
Al poner la condición If, ya incluye todos los casos: verdadero, falso y sin valor
Supongo que será eso.
Pues no se porque a ti te funciona ya a mi no, la casilla Verificación pertenece a la tabla por lo tanto no es un valor flotante...
Lo dejamos aquí ya que he hallado otra solución
Como siempre gracias por tu tiempo.
Saludos

1 respuesta más de otro experto

Respuesta

Yo tenía la misma situación y lo he resuelto así:

El código: Me.boton.visible = Me.CasilladeVerificacion lo he puesto en el evento Actualizar de todo el formulario. Después he puesto la instrucción de Actualizar en el evento Perder el Enfoque de la casilla de verificación.

Espero que después de muchos años a los que entren a este foro les pueda servir mi respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas