Cómo bloquear un campo del formulario a partir de una casilla de verificación

Tengo una casilla de verificación "[Noacude_inf]" y quiero que, al activarla, se bloquee una etiqueta de nombre "txt_IPPpadres" cuyo origen de control es [IPP_padres]. He creado el siguiente código en el evento "Al hacer clic", pero no funciona:

If [Noacude_inf] = -1 Then
     txt_IPPpadres.Enabled = False

Else
    txt_IPPpadres.Enabled = True
End If

Alguien puede decirme donde está el problema.

Respuesta
2

Pedro:Así sin analizar más. Programa el Evento Después de Actualizar (AfterUpdate) del Check Box por el que tiene de Clic. Ya me comentas si sigues con dificultades. Un saludo >> Jacinto

No funciona

Pedro: Releyendo tu texto inicial, veo que citas "Etiqueta". Si eso es así y que yo sepa las Etiquetas no tienen la Propiedad "Enabled". Lo más parecido es la de ocultar o Caption como "".

Lo que no entiendo es porqué no te salta el error de que >> No se encontró el Método...

Si es que >> txt_IPPpadres es un cuadro de Texto, para evitar errores de inerpretación de Nombres>> 1.- Cambia a TxtIPPpadres, 2 .- Encierra lo que tienes entre corchetes.

A ver si salimos. Un saludo >> Jacinto

Hola Jacinto. Quizás me he expresado mal. El nombre del cuadro de texto es "txt_IPPpadres" y el origen de los datos es "[Noacude_inf]". Tengo metido un código parecido en un combobox en el Evento "Al cambiar" y funciona a la perfección. Pero con un cuadro de verificación no me funciona el mismo código.

Me he dado cuenta de una cosa, por si ayuda para la solución. Creo que el código está bien. El problema se presenta cuando el campo que quiero hacer invisible contiene datos. En ese caso, el código de hacer invisible el cuadro de texto no funciona. Si está vacío, funciona perfectamente haciéndolo visible o invisible, según se marque o desmarque el cuadro de verificación.

Pedro: No debe influir que el control tenga o no valor para que actúe la Propiedad Enabled, que ahora veo que citas Visible. No obstante quizá partimos de un Ejemplo y sobre él comentamos.

http://www.mediafire.com/file/9zj4sd8n894ty94/CheckBloqueaTextBox.rar 

Cuando lo hayas mirado me comentas si eso es lo que buscas. Un saludo >> Jacinto

Gracias Jacinto. Eso es justo lo que yo quiero. Pero tengo una duda. Por qué pones "Me." (Me.TxtTestigo.Enabled = True). Yo es que no lo pongo (Me.). De todas formas, voy a probarlo.

Pedro: Lo del Me. Lo que sea, es para que que Access no tenga, ningún problema de Interpretación.

No digo que lo que haces esté mal, pero al poner Me. TxtTestigo, a Access no le queda ninguna duda de que te estás refiriendo al "Control" TxtTestigo y no al campo subyacente si tiene como Origen Origen de Datos el mismo nombre de Campo.

Si ese dato está ya guardado, no hay problema. Un saludo >> Jacinto

Jacinto, sigo teniendo el mismo problema. Meto el mismo código que el que tienes en tu ejemplo, pero si el campo está con datos, no me permite bloquearlo, aunque sí hacerlo invisible (cambio "enabled" por "visible"). Si, por el contrario, el campo está vacío, entonces al seleccionar el checkbox se bloquea. 

En fin, no sé a qué se debe esto ya que, por más que miro no encuentro el motivo. Si tú tampoco ves el motivo, entonces optaré por hacerlo invisible.

En relación a la aclaración del "Me." me ha servido mucho.

Pedro: Si pasa es que así es, pero en el ejemplo ya ves que da lo mismo que tenga datos o que esté vacío. Lo que si puede ocurrir según tengas el proceso, es que intentes llenarlo o manipular algo en el, mientras la propiedad Enabled está en False. Yo en ocasiones suelo utilizar la propiedad Locked seguida de la BackColor. Y utilizo el rojo cuendo esa Bloqueado (Locked = True) y Verde cuando está desbloqueado. Así veo los valores y de forma intuitiva si es modificable o no. Un saludo >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas