Access - Bloquear formulario

 
Vista:

Bloquear formulario

Publicado por CyRuS (127 intervenciones) el 12/06/2007 16:54:33
Trabajo en red por lo que al mismo tiempo tengo varios usuarios dentro del
Access. Dentro de un formulario tengo un botón que ejecuta una macro. Mi
problema es que esa macro es tan crítica que si dos personas la ejecutan al
mismo tiempo, se me lía la cosa. Por eso, quiero bloquear esa macro. Y yo
me pregunto, ¿cómo lo hago ? ¿ se puede bloquear ese formulario para que si
hay alguien que lo tenga abierto, al que quiera entrar le diga que está
siendo utilizado y no le dje entrar hasta que el otro haya cerrado el
formulario? en ese caso cómo lo hago ? ¿ y si en vez de todo el formulario
quiero bloquear ese botón en concreto ? ¿se puede hacer ?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Bloquear formulario o botón para prevenir ejecución simultánea

Publicado por Alejandro (4142 intervenciones) el 11/08/2023 22:32:43
Para evitar que múltiples usuarios ejecuten una macro crítica al mismo tiempo, puedes implementar un mecanismo de bloqueo en Access. Aquí te muestro cómo hacerlo tanto para bloquear el formulario completo como para bloquear un botón específico:

Bloquear el formulario completo:



1. Agregar un campo de bloqueo en una tabla:
Crea una tabla en tu base de datos que se utilice para controlar el estado del bloqueo. Agrega un campo llamado "BloqueoFormulario" (o un nombre similar) de tipo Sí/No (Booleano).

2. Modificar la macro:
Asegúrate de que la macro revise el estado del campo "BloqueoFormulario" antes de ejecutar la acción crítica. Si el campo está marcado como Verdadero, la macro debe mostrar un mensaje indicando que el formulario está siendo utilizado y no realizar la acción.

3. Manejar el bloqueo en el formulario:
En el evento "Al Cargar" del formulario, verifica el estado del campo "BloqueoFormulario". Si está marcado como Verdadero, puedes mostrar un mensaje al usuario indicando que el formulario está siendo utilizado y cerrar automáticamente el formulario después de un tiempo. Si el campo está marcado como Falso, cambia su valor a Verdadero para indicar que el formulario está en uso.

Bloquear un botón específico:



1. Agregar un campo de bloqueo en una tabla:
Sigue el mismo paso 1 mencionado anteriormente para crear una tabla con un campo "BloqueoBoton" (o similar).

2. Modificar el botón:
En el evento "Al Hacer Clic" del botón crítico, agrega código VBA para verificar el estado del campo "BloqueoBoton". Si está marcado como Verdadero, muestra un mensaje indicando que el botón está bloqueado. Si está marcado como Falso, cambia su valor a Verdadero antes de ejecutar la acción crítica. Al finalizar la acción, cambia el valor nuevamente a Falso.

Estos enfoques permitirán controlar el acceso y evitar que múltiples usuarios ejecuten la acción crítica al mismo tiempo. Sin embargo, ten en cuenta que no garantizan una exclusión completa y pueden haber casos donde los usuarios intenten ejecutar la acción al mismo tiempo. Deberías considerar implementar un sistema de bloqueo más avanzado si la crítica es muy importante y necesitas una seguridad más sólida.

Recuerda que Access no está diseñado para manejar bloqueos de alto nivel en un entorno de red complejo, por lo que estos métodos pueden no ser infalibles en todas las situaciones.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar