Macro para deshabilitar un cuadro de texto

Tengo un formulario hecho en access que contiene varios subformularios. En el formulario principal quiero añadir checboxes de forma que cuando se marquen se deshabiliten los subformularios. En principio lo he realizado creando una macro, a la que le pongo la condición de que cuando se marque el cuadro de texto, le asigne a los cuadros de texto del subformulario el valor falso, en la propiedad activado. El problema radica en que muchas veces me aparece tanto al inicio como cuando lo deshabilito, el error de que no se puede deshabilitar un control mientras tenga el foco.
Mi pregunta es, ¿existe alguna forma de deshabilitar el formulario? ¿Cómo puedo quitar el foco del suformulario o pasarlo a otro lado?

1 respuesta

Respuesta
1
Si pones casillas de verificación (checkboxes), puedes hacer que al pulsarlo se desactiven los subform.
creas los checkboxes y con el boton derecho pinchas en la pestaña eventos, en hacer clic y abres el generador de codigo. Supongamos que el nombre del checkbox es Desac1, y el nombre del subform. es sub1, pues pones esto
if me.desac1=-1 then me.sub1.enabled=false else me.sub1.enabled=true
Tu respuesta es correcta pero lo único que hace es impedir escribir en el subformulario. He podido comprobar que lo que yo deseo hacer es o bien que los cuadros de texto del subformulario estén deshabilidatos (se vean en gris) o bien no sean visibles. Esto no es posible si tienen el foco. He intentado pasarlo a otro control con el setfocus pero nada me sigue saltando el error anterior.
Prueba con docmd. Gotocontrol "control"
Si eso cambia el foco pero sigo sin poder deshabilitar todos los cuadros de texto de un subformulario. Lo he intentado todo pero nada, no funciona.
Pues una vez que cambias el foco desactivas el formulario entero, no los controles dentro del mismo, así (si el form. Se llama "subform")
me.subform.enabled=false
o asi
me.subform.locked=true
Puedo deshabilitar el formulario y el foco no me da problemas. El problema esta en que cuando deshabilito el formulario lo bloquea pero los controles no aparecen en gris como si estuvieran deshabilitados. Eso es lo que busco que cuando se marque el checkbox no solo se bloqueen los controles sino que aparezcan como deshabilitados.
He probado la opción bloquear el formulario y cambiar el backstyle a transparente pero parece que tampoco funciona.
Entonces tienes que ir deshabilitando cada control del formulario
Eso es lo que he hecho tanto en macros como en vba. Pero el cuadro de texto que tiene como punto de tabulación 0 no me deja deshabilitarlo y me sale un error de "no se puede deshabilitar un control que tenga el enfoque". Aunque el enfoque lo haya pasado a otro lado. ¿Mi pregunta es se pueden deshabilitar todos? ¿O simplemente el access es así y siempre tiene que haber un control habilitado?
Ya no se que decirte, en teoría se pueden desactivar todos.
Si quieres mandame un ejemplo a [email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas