Access - Problemas Modo exclusivo

 
Vista:

Problemas Modo exclusivo

Publicado por Moises (75 intervenciones) el 30/03/2006 12:16:15
Buenos días,

Tengo un aplicativo echo en Access 2000 y mi problema es el siguiente.

Utilizo el método CopyObject para poder “Clonar” un informe el cual le tengo que hacer varias modificaciones a través de código. Esta BDD está en red. Todo va bien hasta que un segundo usuario entra en la BDD para trabajar simultáneamente en ella. Cuando uno de ellos ejecuta mi procedimiento, éste genera un error porqué no puede “clonar” el informe debido a que la BDD no está en modo exclusivo.

Los dos usuarios deben poder trabajar simultáneamente con la BDD ya que no sirve que uno avise al otro de que va a ejecutar mi procedimiento y este le haga salir del aplicativo.

¿Alguien me podría dar una solución?
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

Clonar informe en una base de datos compartida sin bloqueo exclusivo

Publicado por Alejandro (4142 intervenciones) el 17/07/2023 23:23:28
Para clonar un informe en una base de datos de Access compartida sin bloqueo exclusivo, puedes utilizar una combinación de las siguientes estrategias:

1. Cambiar temporalmente la propiedad de bloqueo de la base de datos:
- Antes de clonar el informe, cambia temporalmente la propiedad de bloqueo de la base de datos a "Bloqueo optimista" en lugar de "Modo exclusivo". Esto permitirá que varios usuarios accedan a la base de datos simultáneamente.
- Utiliza el siguiente código para cambiar la propiedad de bloqueo:

1
2
3
4
Dim db As DAO.Database
 
Set db = CurrentDb
db.Execute "SET OPTION DBEXCLUSIVE 0"

2. Clonar el informe utilizando el método CopyObject:
- Después de cambiar la propiedad de bloqueo, utiliza el método CopyObject para clonar el informe deseado en la base de datos.
- Asegúrate de asignar un nuevo nombre al informe clonado para evitar conflictos con el informe original.
- Puedes utilizar el siguiente código como ejemplo:

1
DoCmd.CopyObject , "NuevoInforme", acReport, "InformeOriginal"

3. Restaurar la propiedad de bloqueo de la base de datos:
- Después de clonar el informe, restaura la propiedad de bloqueo de la base de datos a su valor original.
- Utiliza el siguiente código para restaurar la propiedad de bloqueo:

1
2
db.Execute "SET OPTION DBEXCLUSIVE 1"
Set db = Nothing

Al utilizar esta estrategia, permitirás que varios usuarios trabajen simultáneamente en la base de datos sin bloqueo exclusivo mientras clonas el informe. Una vez clonado, la propiedad de bloqueo se restaurará a su valor original.

Recuerda que esta solución implica un cambio temporal en la propiedad de bloqueo de la base de datos, lo que podría afectar otros aspectos del acceso concurrente a la base de datos. Realiza pruebas exhaustivas en un entorno de desarrollo antes de implementar esta solución en un entorno de producción.
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