Todoaccess.com Access, desarrollo a medida, programas, software, ERP, aplicaciones, soporte, Contabilidad, Gestion Comercial, Análisis financiero, Caja, Facturas, consultas on line, articulos, tablas, formularios, informes, macros, VBA, enlaces, libros, revistas, formacion
FAQ - Preguntas Frecuentes de Access

FAQ's (Preguntas Frecuentes)

Inicio (FAQ's)

Tablas

Formularios

Consultas

Macros

Informes

Modulos

FAQ

Pregunta:


Hola Sofocles

Creo no haber entendido muy bien tu respuesta en la consulta nº664, o creo que no me he explicado bien en la pregunta.

Como está ahora:

-Formulario con un subformulario(de una consulta de selección de dos tablas relacionadas 1 a 1). El formulario está relacionado a su vez con la una de las tablas 1 a varios.

-Ahora mismo puedo agregar datos en el formulario, editar, y eliminar. Lo mismo en el subformulario. Y las tres tablas se rellenan perfectamente sin errores.

-Lo que pretendo es que se siga así, pero sin poder editar ni borrar. Es decir, que sólo se permita agregar nuevos registros tanto en el sub como en el formulario.

-Lo intento hacer deshabilitando las ediciones en el formulario principal. Pero al hacer eso, automáticamente me deshabilita agregar registros en el subformulario.

Por favor, en la medida de lo posible, evita respuestas que supongan VBA, porque no lo domino. Si no queda más remedio, aprenderé.

Muchas gracias de antemano!! y por la prontitud de la respuesta de la anterior consulta!



Resumen:


Bloqueo y desbloqueo de campos en formularios.


Respuesta:


Estimado Usuario:

Para hacer lo que pretendes debes recurrir, sin escusa, al código VBA.

El primer paso que debes dar es abrir el formulario en modo diseño, y en las propiedades de los campos seleccionar: Bloqueado=sí, Activado=Sí.

De esta forma todos los campos están bloqueados y no se pueden modificar.

Ahora bien, cuando se da de alta un registro, necesitas que estos esten desbloqueados para poder introducir los datos. Esto se consigue con el modulo VBA, realizando un desbloqueo de la siguiente forma:

Busca el evento antes de insertar del formulario, y en el código escribes lo siguiente:

'*****
Private Sub Form_BeforeInsert()
[Campo1].Locked = false
.....
' asi con todos los campos
End Sub
'*****

Al terminar de editar, tienes que controlar que se vuelven a bloquear, para ello tienes que localizar el evento despues de actualizar del formulario y escribir lo siguiente:

'*****
Private Sub Form_AfterUpdate()
[Campo1].Locked = true
.....
' así con todos los campos
End Sub
'*****

Y voila, no es tan dificil como crees.

Para evitar que te borren registros debes utilizar el evento al eliminar del formulario, y escribir lo siguiente:

'****
Private Sub Form_Delete()
docmd.cancelevent
End Sub
'*****

Estos modelos valen para los dos formularios, el principal y el subformulario.

Espero que esta información te sirva de ayuda.

Saludos.

Sofocles.


Si Esta FAQ no cumple con sus expectativas puede:


» Haga de todoAccess su Página Inicio

» Añada todoAccess a sus Favoritos

» Recomiende esta página

» Ayúdenos a mejorar

© Ángel Pérez Díaz, 1993-2010 - Todos los derechos reservados. - Condiciones de Uso - Declaración de Privacidad - Contacto

Dudas y sugerencias sobre este sitio: todoAccess@todoAccess.com - Web diseñada para una resolución optima de 1.280 x 1.0244

Microsoft y el logotipo de Office son marcas o marcas registradas de Microsoft Corporation en Estados Unidos y otros países

Aceptamos Tarjetas Visa y Master Card Aceptamos pagos de PayPal