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
-------------------

    Source: geocities.com/es/ensolva/Descargas/Documentos

               ( geocities.com/es/ensolva/Descargas)                   ( geocities.com/es/ensolva)                   ( geocities.com/es)