La Web del Programador: Comunidad de Programadores
https://www.lawebdelprogramador.com/foros/Access/1230643-casilla-de-verificacion.html

casilla de verificacion

casilla de verificacion

Publicado por david caceres (4 intervenciones) el 04/10/2010 18:58:53
buenas tardes, a ver si me pueden ayudar.
Tengo un formulario para el control de clientes, y para evitar modificar por error algun dato del mismo tengo bloqueada la edicion, me gustaria que a traves de una casilla de verificacion si la marco se desbloquease la edicion de datos para poder editarlo y al desmarcar la casilla de verificacion que volviese a bloquear la edicion de datos, ruego me contesten como para tontos, ya que no tengo mucha idea de access.
muchisimas gracias de antemano
sin imagen de perfil

RE:casilla de verificacion

Publicado por Marcelo (166 intervenciones) el 04/10/2010 19:46:07
1°) En vista diseño del formulario --> selecciona uno por uno los controles que quieres bloquear --> cada vez que selecciones 1 y anota el nombre del control que aparece en la hoja de propiedades en la Propiedad "Nombre", selecciona el control cuadro de texto (derecha), no su etiqueta(izquierda)

ej: Texto1, Texto2, Texto3,...etc

2°) Crea la casilla de verificación (Casilla) --> en el cuadro de Propiedades selecciona el Evento "Después de Actualizar", ahí puedes colocar 1 expresión, Macro o Código. Te recomiendo que use Código, es decir, Visual Basic. No es difícil y es más estructurado que las macros. --> selecciona "Procedimiento de Evento" y presiona el botón con ... (generar).

3°) Llegas a VB y das los valores a cada control. Las casillas de verificación tiene 2 valores, encendido (-1) y apagado (0) así puedes dicriminar con el siguiente código:

Private Sub Casilla_AfterUpdate()

'pregunta si la casilla vale 0 o -1
If Casilla.Value = -1 Then

'desbloquea los controles si está con tiket
Texto1.Locked = False
Texto2.Locked = False
Texto3.Locked = False

ElseIf Casilla.Value = 0 Then

'bloquea los controles si no está con tiket
Texto1.Locked = True
Texto2.Locked = True
Texto3.Locked = True

End If

End Sub

Este método bloquea o desbloquea cada control, hay formas más rápidas de hacerlo sin nombrar cada control pero así creo que se en tiende bien. Te recomiendo que incursiones en VBA, es más poderos y estructurado. Mina la instrucción Width, For, etc.

Un saludo

RE:casilla de verificacion

Publicado por david (4 intervenciones) el 05/10/2010 08:19:54
muchas gracias por tan pronta respuesta, he hecho lo que me decias, pero tengo un problema, despues de hacerlo todo he ido a probar si funcionaba, pero cuando le doy a la casilla de verificacion no se marca, le doy y no hace nada, uso access2007 por si tiene algo que ver en el funcionamiento.
muchisimas gracias de nuevo.
sin imagen de perfil

RE:casilla de verificacion

Publicado por Marcelo (166 intervenciones) el 05/10/2010 14:24:45
Tienes un nivel de seguridad Medio o Alto el cual deshabilita todo tipo de automatización que tengas programada (Macro o VBA)

Para el nivel de seguridad que viene configurado por defecto sólo basta habilitar desde el botón "Opciones..." ubicado debajo de la cinta de opciones (menú)

a) Advertencia de Seguridad, Se ha deshabilitado parte del contenido de la Base de Datos, Opciones... --> Habilitar este Contenido ---> Aceptar.

- o bien -

b) Puedes configurar el nivel de seguridad presionan del botón de office (redondo, esquina superior izquierda) --> Opciones de Access --> Centro de Confianza --> Configuración centro de confianza --> Deshabilitar todas las macros con notificación --> Aceptar --> Aceptar

Ese es el nivel de seguridad que te comento en el punto a), a lo mejor tu tienes configurado un nivel más alto o simplemente no viste la barra de seguridad

Un saludo y me avisas

RE:casilla de verificacion

Publicado por Jefferson (135 intervenciones) el 05/10/2010 17:03:53
Hola david

El problema radica en que tienes el Form bloqueado "PermiteEdiciones = NO" y como comprenderas bloqueas TODO incluso la casilla.

Hace tiempo hice un codigo parecido a lo que buscas, debes estudiarlo bien y adaptarlo a tus necesidades

http://sites.google.com/site/jjjt1973/Home/desbloquear-un-solo-campo

Desde Venezuela
Jefferson

RE:casilla de verificacion

Publicado por david (4 intervenciones) el 05/10/2010 20:02:56
hola marcelo, ya tenia habilitadas las macros, creo mas bien que debe ser por lo que me comenta jefferson, que al tener deshabilitadas las ediciones no me permite activar una casilla de verificacion.
en cuanto a jefferson, ya estuve mirando tu codigo :P y lo adapte a mis necesidades, hice un boton para desbloquear todo, el problema viene a que una vez desbloqueo y modifico lo que me interesa, solo me funciona el boton de bloquear de nuevo si actualizo la pagina con f5, por eso pensaba en la posibilidad de una casilla de verificacion, asi tambien me ahorraba el tener dos botones, uno para desbloquear y otro para bloquear, probare el codigo de marcelo bloqueando casilla por casilla en vez de bloqueando toda la hoja, asi quizas si me deje activar la casilla de verificacion.
muchisimas gracias por vuestros consejos y apoyo, haceis una gran labor para orientar a los novatillos como nosotros :P
un abrazo
sin imagen de perfil

RE:casilla de verificacion

Publicado por kem (3 intervenciones) el 29/07/2015 22:22:36
saludos jeferson, tengo una duda, talves fuera del tema, pero no encuentro quien me ayude

tengo una consulta sobre como crear avisos, pero con un enfoque un poco diferente, esto es para ACCESS ,puede ser atraves de codigo VBA o expresion.

la dificultad es la siguiente:

tengo una tablaX, donde se almacenan registros de niños, el cual tienen el "Id" (unico del sistema), pero tambien tienen un "id de cliente" que se puede repetir cada año, entonces, necesito hacer una expresion para un textbox, que cuando el usuario agrege un nuevo campo, y este al llegar a un campo llamado "peso", pueda comparar el peso del mismo niño del año anterior con el actual que ingrese, (y enviarme un aviso segun el peso del año anterior).

agradeceria mucho tu respuesta.

RE:casilla de verificacion

Publicado por SARA (1 intervención) el 21/07/2012 14:14:30
Gracias! muy clara la explicación ;)

RE:casilla de verificacion

Publicado por david (4 intervenciones) el 05/10/2010 20:22:01
ya esta solucionado, lo unico que he tenido que hacer es desbloquear la edicion en el formulario y ahora cuando le doy a la casilla de verificacion me comprueba cual es el estado de las casillas que le he puesto en la macro y me cambia la condicion a bloqueado o desbloqueado, ole¡¡¡
muchas gracias de nuevo, si alguien quiere el codigo que me lo pida y yo encantado de la vida.
un abrazo

RE:casilla de verificacion

Publicado por Mario Blanco (1 intervención) el 27/08/2012 14:01:47
Me gustaria que pusieras el codigo ya que si he hecho lo demas me faltaria esa parte y estaria interesante esa funcion

RE:casilla de verificacion

Publicado por Luis Murga (3 intervenciones) el 01/02/2017 23:01:30
Me interesa la solución que el diste, necesito hacer lo mismo para una base de datos que estoy haciendo en mi trabajo.