BLOQUEO DE REGISTRO EN ACCESS 97

AGOBIAU
03 de Noviembre del 2003
Hola,
tengo un problema con Access 97. Cuando intento modificar un registro, el sistema me dice que hay un usuario que esta haciendo cambios en ese mismo registro. Esto no es cierto, ya que he abierto la base de datos en modo exclusivo y solamente estoy yo dentro de la base de datos. He probado lo siguiente:

1. Reparar la base de datos. No me da ningun problema
2.Compactar la base de datos. No me deja, y encima me dice que el ADMINISTRADOR del sistema NO tiene permiso para lectura (Acojonante...).

Os agradeceria muchisimo vuestra ayuda. Necesito que alguien me eche un cable. El problema de este es que no puedo hacer nada con el registro bloqueado y la base de datos no puedo compactarla, por lo cual esta creciendo demasiado.

Un saludo y gracias a [email protected] por vuestra colaboracion.


Toni_
03 de Noviembre del 2003
Te paso una chuleta que encontre un dia puede que te sirva

******Para tus bases de datos corrompidas********

yo lo he probado y funciona


Un switch imprescindible (/Decompile)


Hace poco he descubierto un nuevo switch (/Decompile), el cual no está documentado por
Microsoft ya que en principio no hace falta utilizarlo, pero puede resultar muy útil para reducir el tamaño
del programa, asegurarse que está todo compilado y también, mejorar un poco el tiempo de arranque del programa.

Este switch lo he descubierto gracias a Michael Kaplan y a su artículo "La verdad del switch (/Decompile)".

Con este switch se consiguen dos cosas muy importantes:

1.- Poder reparar bases de datos corruptas, incluso algunas que no se arreglan con el "reparar y compactar".
Es importante saber que una base de datos Access siempre se corrompe por la parte compilada, nunca el código
que nosotros hayamos podido escribir, ya que éste se guarda como texto.

2.- Poder eliminar todo el código compilado y después recompilarlo asegurandose que sólo tendremos una versión
compilada. Con esto reduciremos mucho el tamaño del fitchero MDB.

En diversas bases de datos en las que he aplicado el switch, he conseguido reducir, de media, a un 50% el tamaño
de ficheros MDB. Aunque depende mucho de la cantidad de código VBA que contengan y de las veces que se haya
compilado éste.


Cómo utilizar este switch:

1.- Hacer una copia del fichero MDB (¡¡Muy importante!! , ya que es un switch no oficial, y puede dar algún problema).

2.- Crear un acceso directo a la base de datos en cuestión, y añadir el switch (/Decompile).

Ej.:
"C:Archivos de programaMicrosoft OfficeOfficemsaccess.exe" "C:Infocosprograma.mdb" /decompile

3.- Haga click en el acceso directo y se abrirá el Access. Aparecerá el mensaje "Convirtiendo el codigo a la versión
actual de Visual Basic".

4.- Hace falta abrir cualquier módulo y ejecutar la opción "Compilar y guardar todos los módulos".

5.- Hacer un "Compactar y reparar", y ya está.


Ahora tendremos una base de datos totalmente compilada y sin restos de código de versiones anteriores.

Consideraciones:

- He probado este switch con Access 97 y Access 2000. Con el 2000, aunque no falla, parece que
tienen mejor resuelto
este problema y no se nota tanta mejora como con el 97.

- Sólo tiene sentido aplicar este switch a bases de datos que contengan código VBA.




Tema: INFO: La verdad del switch/Decompila (/Decomplie)
(Puesto originalmente el 5/22/99)
Esto es para dar un pequeño fondo histórico e información de este switch de línea de comando no documentado
en msaccess.exe. Para usarlo, solo corre:

msaccess /decompile <your database name>

Y esto es todo. Pero, ¿Qué es exactamente lo que hace????
Saludos

yurk
03 de Noviembre del 2003
Este bloqueo lo he conocido en varias ocasiones.

Suele estar producido por un campo MEMO.

1) comprueba si en la estructura de tu tabla tienes un campo de este tipo. Si no, tendrás que esperar otra respuesta =;-(

2) Localiza el registro con el problema. aparece #Error.

3) Haz una consulta que seleccione el registro con problemas. Si te interesan el resto de datos del registro, copias y pegas todos en la tabla, original (tendrás que modificar la clave temporalmente).

4) Eliminta el registro de la consulta. Volviendo a la tabla si copiaste los datos, puedes restaurar la clave original.

con esta solucion pierdes los datos del campo MEMO, pero ya estaban perdidos desde que se reproduce el error. =:-)

saludos

sergok
03 de Noviembre del 2003
Hola,
te aconsejo que pruebes a importarte todos los objetos (tablas, formularios, informes, ...) en un nuevo mdb y pruebes a compactarlo en este, luego lo reemplazas si te va bien.
También es posible que se haya quedado bloqueado, cuando abres un *.mdb el sistema crea automaticamente un *.ldb en el que se guardan los equipos que están accediendo a él (lo puedes editar con el notepad, por ejemplo) este *.ldb se debe borrar cuando no hay ningún usuario conectado pero hay veces que se queda pillado, si estas seguro que eres el único conectado prueba a cepillartelo (haz una copia antes del *.mdb por si acaso) y volver a entrar, otro modo de que lo elimine el sistema es reiniciando la máquina donde se encuentre o descompartiendo la carpeta si es que esta en red.

Espero que te sirva,
un saludo.