EXPOSICION DE ATRACTOR
======================
Hola Grupo.
Acabo de encontrar un error en Access con el que llevaba partiendome los
cuernos un par de semanas aproximadamente.
No sé si el error estará ya documentado por Microsoft o es de dominio
público. He mirado en Microsoft (España) por si había algo sobre el tema y
no he encontrado explicación al error.
El caso es que a mí me paso hace un par de semanas y hasta hace un par de
horas no he conseguido solucionarlo.
DESCRIPCIÓN DE SECUENCIA DEL ERROR:
Un usuario abre una base de datos que se encuentra asegurada a nivel
usuario. El usuario que abre la base es el administrador, con plenos
derechos, y el propietario de la misma, junto con la de todos sus objetos.
En un momento dado este usuario intenta modificar el diseño de un módulo o
un objeto cualquiera de la base y te sale un mensaje con el siguiente
contenido: "No tiene acceso exclusivo a la base de datos en este momento.
Si continúa haciendo cambios existe la posibilidad de que no pueda
guardarlos." Y efectivamente, si intentas guardar los cambios te dice que
no puede hacerlo ya que no tienes acceso exclusivo a la base de datos.
CAUSAS DEL ERROR:
Cuando un usurio abre una base de datos, Access genera dos archivos de
bloqueo con extensión "ldb", uno con el nombre de la base de datos (*.mdb)
que se abre , y otro, con el nombre del grupo de trabajo que se usa.De
todos es sabido que estos archivos contienen información sobre los usuarios
que abren la base de datos y/o que usan el mismo grupo de trabajo,
respectivamente. En estos archivos se graba el nombre de la máquina que
abre la base de datos y el del usuario que accede a la misma.
Pues bien, si el desarrollador, creo la base de datos y el grupo de trabajo
compartiendo el mismo directorio, y de casualidad dio el mismo nombre a la
base de datos (con extensión mdb) y al grupo de trabajo (con extensión
mdw), ocurre lo siguiente:
Cuando un usuario inicia sesión, se crea un archivo con extensión ldb al
que se le asigna el nombre del grupo de trabajo (Ejemplo: Si el grupo de
trabajo se llama "Pepe.mdw", se crea en el mismo directorio el archivo
"Pepe.ldb") . Seguidamente , y en el momento de acceder a la base de datos,
se debía de crear un archivo diferente con extensión ldb en el mismo
directorio que se corresponde con el del nombre de la base de datos, pero
como en nuestro caso la base de datos se llama "Pepe.mdb", no llega a
crearse, ya que se duplicaría el archivo con el mismo nombre y por supuesto
el sistema operativo no lo permitiría. Access se confunde y lo que hace es
añadir el nombre de la máquina y de usuario al archivo con extensión ldb
que ya existía previamente.
RESULTADO ANÓMALO: Sólo existe un archivo con extensión ldb que tiene
grabado por dos veces el mismo usuario, cuando debieran de existir dos
archivos diferentes en el que cada uno de ellos tuviera grabado el nombre
de usuario y de la máquina una sóla vez.
De ahí viene el error dado por Access de que la base de datos no se
encuentra abierta en modo exclusivo, ya que cuando se dirige a consultar el
archivo de bloqueo (ldb) generado para la base de datos, comprueba que
tiene dos usuarios accediendo a la misma, cuando esto es completamente
falso.
FIN DE EXPOSICIÓN.
UN SALUDO A TODOS
PD. Siento todo el rollo que me he marcado, pero sé que estos problemas de
errores de acceso exclusivo salen frecuentemente en la news.
Se publica en los grupos de Visual Basic ,de Access, DAO y ADO.
-----------
Antonio Fernández
Pamplona (Navarra)
Atractor@teleline.es
-------------------
               (
geocities.com/es/ensolva/Descargas)                   (
geocities.com/es/ensolva)                   (
geocities.com/es)