Reparación de base de datos de MS-Access corruptos
Cómo crear una nueva BD con todos los elementos.
Introducción
Microsoft Jet (el motor de la base de datos) gestiona tablas y consultas (procedimientos almacenados) y también objetos genéricos llamados documentos, aprovechados por Access para el almacenamientos de todos sus propios objetos.
Microsoft Jet no es un sistema de bases de datos cliente-servidor, sino de archivos compartidos (archivos *.MDB). Esto lo hace frágil al funcionamiento incorrecto de una red local, especialmente cuando hay muchos puestos involucrados.
A veces, los archivos .MDB se corrompen. Las causas habituales son las siguientes:
- Red local defectuosa, conexiones intermitentes, cables con interferencias, contactos malos
- Error en el software de red (especialmente, Windows 98, primera versión, que tiene un error en el controlador de la tarjeta de red Realtek 8029) y posiblemente también los archivos NDIS.
- Existencia de Viruses en la red (aprovechan debilidades en el software de red para reproducirse)
- Al desarrollar, MS-Access archiva muchos resultados intermedios. Conviene compactar muy a menudo.
- En caso de tablas, suelen romperse a menudo los campos memo.
Reparación simple
Antes de realizar cualquier intento de reparación es necesario:
- Deshabilitar el acceso al archivo a cualquier persona
- Realizar una copia, ya que a veces el proceso de reparación rompe aún más el archivo
- Asegurar tener abundante espacio disponible en el disco duro. Algunas veces el proceso de reparación crea archivos mucho más grandes que el original. En Access 97 el límite de de 1 GB, en Access XP es de 2 GB.
Después se intentará corregir la base de datos:
- Activando el comando de Reparación: entrar en Access (cancelar la opción de abrir o crear base de datos) en el menú
Herramientas | Utilidades de la base de datos | Reparar base de datos (97)oCompactar y reparar... (2000 y posterior)y eligiendo en archivo corrupto (en nuestro caso Arquitbl.mdb). - En caso de Access 97, si la reparación ha sido correcta, es necesario compactar la base de datos.
En caso de fallar la reparación/compactación:
- normalmente puede verse en qué objeto (tabla, formulario, etc.) el proceso de compactación se ha detenido, dado que si el proceso de Access termina inesperadamente, la base destino del proceso suele quedarse y llamarse algo como bd1.mdb, bd2.mdb o parecido.
- crear una base de datos en blanco.
- intentar importar todos los objetos menos el que ha dado problema. No olvidar de importar también las barras de herramientas.
- si se trata de una tabla:
- importar la tabla sin los datos (sólo definición). Tenga en cuenta que las relaciones a esta tabla no han sido creadas.
- entrar en el archivo corrupto e intente abrir la tabla problemática. Intentar copiar y pegar todos los registros por regiones (realizar un tipo de método binario para detectar dónde está el error). Algunas veces es problemático por los autonuméricos. Considerar usar una sentencia SQL para realizar la importación.
- Microsoft recomienda exportar los datos en formato de texto e importarlos posteriormente en una nueva tabla. (se pierde la descripción de la tabla.)
Pasos posteriores a la creación de una nueva base de datos:
- Una vez realiza la importación, hemos de activar algunas opciones más:
- en el menú Herramientas | Inicio:
- Poner SiceXP en el título de la aplicación, (icono se queda en blanco, se establece al arrancar)
- Barra de menús: Menú
- Desactivar
Presentar la ventana de Base de datos
- en el cuadro de Herramientas | Opciones, en la pestaña General, suelo establecer los márgenes a 1 cm. (eso ya se quedará para siempre.)
- en el entorno de VisualBasic (Alt-F11), menú Herramientas | Referencias: desactivar
Microsoft ActiveX Data Objects 2.5yMicrosoft Office XP Web Componentsy activarMicrosoft DAO 3.6 Object Library.
- en el menú Herramientas | Inicio:
Observaciones:
- es posible que haya un formulario oculto TmpScc... si se ha trabajado con el Source Code Control. Para no importarlo, es necesario ir antes a las opciones (menú Herramientas) y en la pestaña Ver elegir
objetos ocultosyObjetos de sistema. - En el cuadro de importación, hay que ir pestaña por pestaña (Tablas, Consultas, Formularios, etc.), pulsar Seleccionar todo y, en su caso, desmarcar los elementos corruptos. En el botón Opciones, marcar 'Menús y barras de herramientas'. Una vez marcados todos los elementos, se inicia el proceso de importación.
- Si Access termina inesperadamente, alguno de los objetos sigue estando mal. Eso se puede ver normalmente abriendo la BD en la que estábamos importando, y ver hasta donde ha sido capaz de importar.