ACC97: Cómo reparar una base de datos Jet 3.5 dañada

Seleccione idioma Seleccione idioma
Id. de artículo: 279334 - Ver los productos a los que se aplica este artículo
Moderada: Requiere macro básico, codificación y las capacidades de interoperabilidad.

Para una versión de Access 95 o Jet 3.0 de este artículo y de Microsoft Access 2.0 o Jet 2.x, vea 109953.

Para obtener una versión de Microsoft Access 2000 y Jet 4.0 de este artículo, consulte 209137.
Expandir todo | Contraer todo

En esta página

Resumen

Factores del entorno que pueden dañar el archivo de base de datos. Los síntomas de una base de datos dañada pueden variar desde que aparezca #Eliminado en algunos registros hasta que no puedan abrirse los objetos de la base de datos o el archivo en Access. Las utilidades para reparar y compactar de Microsoft Access son herramientas útiles para recuperar y optimizar archivos de bases de datos de Microsoft Access. En este artículo se describen estas utilidades y se ofrecen alternativas adicionales para reparar bases de datos dañadas. Además, se proporciona información acerca de lo que puede dañar en la sección "daños típica produce de MDB en archivos" de este artículo.

Más información

Aunque los pasos enumerados en este artículo suelen dar resultados satisfactorios en la recuperación de archivos de bases de datos dañados, para proteger sus datos, debería crear una copia de seguridad de su archivo de base de datos con la mayor frecuencia posible.

Utilidades Reparar y compactar

La utilidad de reparación

La utilidad Reparar puede arreglar bases de datos que tengan determinados tipos de daños. Sólo intenta arreglar las tablas, consultas e índices de la base de datos. No repara formularios, informes, macros ni módulos dañados; sin embargo, los copia en la base de datos reparada.

importante : ejecutar el comando Reparar base de datos sólo se debe ejecutar cuando el motor de base de datos Microsoft Jet devuelva un mensaje de error que indica que la reparación. No se debe ejecutar el comando Reparar base de datos en ninguna otra circunstancia.

Utilidad para compactar

La utilidad para compactar elimina el espacio vacío de las bases de datos. Para ello, crea una base de datos de destino nueva en la que copia todos los objetos de la antigua. Si elige compactar la base de datos en el nombre de base de datos original en lugar de a una nueva base de datos, la utilidad Compactar crea una base de datos temporal, exporta todos los objetos de la base de datos original a la base de datos temporal, quita la base de datos original y, a continuación, cambia el nombre la base de datos temporal al nombre de la base de datos original.

importante : compactar la base de datos a menudo es el mejor mantenimiento preventivo para un archivo .mdb. La siguiente es una lista de acciones que lleva a cabo la utilidad Compactar.
  • Reorganiza las páginas de la tabla de forma que residan en páginas adyacentes de la base de datos. Esto mejora el rendimiento porque la tabla deja de estar fragmentada a través de la base de datos.
  • Reclama el espacio creado por el objeto y el registro de eliminaciones. Cuando se eliminan objetos o registros de la base de datos, el espacio que ocupaban se marca como disponible para agregar en ella nuevos objetos o registros. Sin embargo, el tamaño de la base de datos nunca disminuye, a menos que se compacte. Es conveniente compactar con regularidad las bases de datos en las que se agregan, eliminan y actualizan objetos o registros frecuentemente.
  • Restablece el incremento campos Autonuméricos para que sea el siguiente valor que se asigna uno mayor que el valor más alto en los restantes registros. Por ejemplo, si han eliminado todos los registros de la base de datos, tras compactar la base de datos, el valor del campo Autonumérico será 1 cuando se agrega el siguiente registro. Si el mayor valor Autonumérico restante de la base de datos es 50, tras compactar la base de datos será 51 cuando se agregue el registro siguiente. Tenga en cuenta que esto se cumple si los registros que contienen valores superiores a 50 se agregaron anteriormente pero se eliminaron antes de la compactación.
  • Vuelve a generar las estadísticas de la tabla utilizadas en el proceso de optimización de la consulta. Estas estadísticas pueden quedarse obsoletas a lo largo del tiempo, normalmente si las transacciones se deshacen o si la base de datos no se cerró correctamente debido de suministro eléctrico o error para completamente salir del programa utilizar Microsoft Jet antes de desactiva el equipo.
  • Marca todas las consultas de modo que se recompilarán la próxima vez que se ejecuta la consulta. Esto es importante porque las estadísticas de la base de datos pueden cambiar y una consulta compilada anteriormente puede presentar un plan de consulta incorrecto.

Instrucciones importantes para compactar una base de datos

Antes de compactar una base de datos, deben cumplirse las condiciones siguientes:

El usuario que compacta la base de datos debe iniciar la sesión con una cuenta que disponga de los permisos de seguridad Modificar diseño o Administrar para todas las tablas de la base de datos.

Debe haber suficiente espacio en disco para las versiones original y compactada de la base de datos, aunque ésta se compacte mediante la interfaz de usuario de Microsoft Access con el mismo nombre de archivo. La base de datos compactada cambia su nombre por el de la base de datos original sólo si la compactación se realiza satisfactoriamente.

Otros usuarios no deben tener abierta la base de datos. Cuando la base de datos se ha compactado, debe abrirla exclusivamente Microsoft Jet para impedir que cualquier usuario pueda tener acceso a la misma y la modifique durante el proceso.

Recuperación de una base de datos dañada

Si experimenta números de error de Microsoft Jet 3.x 3197, 3343 ó 3015, consulte también el artículo siguiente en Microsoft Knowledge Base:
182867ACC: Mensajes de error de corrupción motor de base de datos Jet 3.x
Los pasos siguientes describen un método general para reparar las bases de datos dañadas:
  1. Hacer una copia del archivo de base de datos (.mdb) dañado como una copia de seguridad.
  2. Asegúrese de que se cierra el archivo .mdb y elimine el archivo .ldb correspondiente, si existe.

    Nota : se utiliza el archivo .ldb para determinar qué registros se bloquean en una base de datos compartida y por quién. Si la base de datos está abierta para usarla en modo compartido, el archivo .ldb se crea con el mismo nombre que la base de datos correspondiente(.mdb). Por ejemplo, si se abre (para uso compartido) la base de datos de ejemplo Neptuno.mdb en la carpeta c:\Archivos de programa\Microsoft Office\Office\Samples, se crea automáticamente un archivo llamado Neptuno.ldb en la misma carpeta. El archivo .ldb se elimina automáticamente una vez que el último usuario ha salido de la base de datos con dos excepciones: cuando el último usuario no tiene eliminar permisos a la carpeta que contiene el archivo .mdb o cuando la base de datos está dañada.

    Para obtener información adicional acerca de los archivos .ldb, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
    136128ACC: Introducción a los archivos .ldb (95/97)
    En la solución lo que está provocando daños en la base de datos, puede ver el contenido de los archivos .ldb ejecutando la utilidad Ldbview. Para obtener información acerca de esta utilidad, vea la sección "Cómo para determinar qué usuarios y estaciones de trabajo está que causan el archivo para ser marcados sospechoso" de este artículo.
  3. Ejecute la utilidad de compactar tal y como se describe a continuación:
    1. Si la base de datos está abierta, ciérrela.
    2. En el menú Herramientas , seleccione Utilidades de base de datos y, a continuación, haga clic en Compactar base de datos .

      Ahora podrá comprobar si se han reparado los daños de la base de datos. En caso negativo, siga con los pasos restantes.
  4. Si el daño está en una tabla, consulta o índice, ejecute la utilidad de reparación de como sigue:

    importante : ejecutar el comando Reparar base de datos sólo se debe ejecutar cuando el motor de base de datos Microsoft Jet devuelve un mensaje que indica que la reparación. No se debe ejecutar el comando Reparar base de datos en ninguna otra circunstancia.
    1. Si la base de datos está abierta, ciérrela.
    2. En el menú Herramientas , seleccione Utilidades de base de datos y, a continuación, haga clic en Reparar base de datos .
    3. Seleccione el archivo dañado en el cuadro de diálogo Reparar base de datos y, a continuación, haga clic en Reparar .

      Si la reparación se ha efectuado correctamente, recibirá un mensaje similar al siguiente:
      <path>Reparó correctamente la base de datos '<rutadeacceso> < nombre de base de datos >'.
      Si la reparación de la base de datos no se efectuó correctamente recibirá un mensaje en el que se le informará de ello. Esto significa que el daño de una tabla, consulta o índice es tan grave que no se puede corregir, o que el daño está en un objeto que no afectan la utilidad de reparación .
  5. Si el daño está en una tabla y tras seguir los pasos anteriores no se ha reparado, pruebe lo siguiente:
    1. En Microsoft Access, exporte la tabla a un archivo ASCII (texto delimitado). Para obtener más información acerca de este tema, busque en el frase "archivo de texto delimitado" y, a continuación, ver el tema "exportar datos de Access" mediante el índice de la Ayuda de Microsoft Access.
    2. Elimine cualquier relación asociada con esta tabla y, a continuación, elimine la tabla de la base de datos.
    3. Compactar la base de datos.
    4. Vuelva a crear la tabla y cualquier relación que tuviera.
    5. Examine el archivo ASCII con un procesador de texto para buscar datos erróneos o extraños, y quite los registros que los contengan. Guarde el archivo en formato de archivo de texto ASCII.
    6. Vuelva a importar el archivo ASCII en la tabla recién recreada. Para obtener más información acerca de este tema, busque la frase "archivo de texto delimitado" y consulte el tema "importar o vincular" mediante el índice de la Ayuda de Microsoft Access.
    7. Vuelva a escribir los registros que se veían obligados a eliminar.
  6. Si no consiguió recuperar la base de datos dañada siguiendo los pasos anteriores, pruebe a crear una base de datos nueva e importe los objetos, uno a uno, de la antigua a la nueva. A continuación, volver a crear las relaciones. Esta técnica resuelve los problemas de las tablas del sistema dañadas de la base de datos.
  7. Si el daño está en un formulario o informe, puede ser el daño en el formulario o el informe o en uno o más controles en el formulario o el informe. Puede eliminar el formulario o informe y importarlo desde la copia de seguridad de la base de datos o utilizar una de las siguientes opciones:
    • Si el daño está en el formulario o el informe, cree un nuevo formulario o un informe nuevo y a continuación, copie los controles desde el formulario o informe original.
    • Si el daño está en un control en el formulario o el informe, cree un nuevo formulario o un informe nuevo y, a continuación, volver a crear los controles en el nuevo formulario o informe. Es mejor volver a crear todos los controles, ya no hay ninguna forma para indicar qué controles están dañados.
  8. Si el daño está en una macro o módulo, puede ser el daño en la macro o el propio módulo o en el contenido de la macro o el módulo. Puede eliminar la macro o el módulo e importarlo de la copia de seguridad de su base de datos o utilizar una de las opciones siguientes:
    • Si el daño está en la macro o el propio módulo, cree una nueva macro o un nuevo módulo y copie el contenido de la macro o módulo original.
    • El daño podría afectar a incrustados en el módulo de caracteres de que no son ASCII. Guarde el módulo como archivo de texto, quite cualquier dato dañado o extraño y vuelva a cargar el archivo de texto en un módulo nuevo.
    • Si el daño está en el contenido de la macro o módulo, debe crear una nueva macro o módulo y, a continuación, volver a crear el contenido de la macro o módulo original.
  9. Si el daño implica que no puede abrir el módulo de clase de un formulario o un informe o la vista Diseño de un módulo, desea probar el modificador de línea de comandos / descompilar . Se recomienda encarecidamente que realice una copia de copia de seguridad de la base de datos antes de intentar este método. El siguiente es un comando de ejemplo con el modificador / descompilar que MSAccess.exe es su ubicación predeterminada y la base de datos que DB1.mdb está en la carpeta C:\:
    c:\Archivos programa\Microsoft Office\Office\Msaccess.exe / descompilar C:\DB1.mdb
    Después de ejecutar este comando desde el cuadro Ejecutar , se le pedirá a compilar la base de datos después de utilizar / descompilar .
  10. Considere descargar la utilidad Jetcomp.exe. Ejecutar Jetcomp.exe puede en algunos casos reparar bases de datos que de lo contrario son irrecuperables. Para obtener información adicional acerca de cómo obtener esta utilidad, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
    172733Versión actualizada de Microsoft Jet 3.5 disponible para descarga
Si no se puede reparar la base de datos con estos pasos, probablemente sea irreparable. Si éste es el caso, debe restaurar la última copia de seguridad base de datos o volver a crear la base de datos.

Como última alternativa, algunos consultores pueden proporcionar servicio de reparación de bases de datos de Microsoft Access. Dado que este servicio es muy especializado, la manera más eficaz de encontrar a un consultor es publicar un mensaje en el grupo de noticias de Internet "Third Party and User Groups" de Microsoft Access ", en esta dirección:
Microsoft.public.Access.3rdpartyusrgrp
Para obtener información adicional acerca de grupos de noticias de Internet de Microsoft Access, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
150057ACC: Newsgroups de Microsoft Access disponibles en Internet

Causas habituales de daños en los archivos .mdb

Existen tres causas principales por las que se dañan los archivos .mdb de Access o Jet.

La base de datos está marcada como SUSPECT/CORRUPTED (sospechosa o dañada) debido a interrupciones en las operaciones de escritura

Siempre, Access se debe salir de correctamente si hace clic Salir o en Cerrar en el menú archivo . Si una base de datos abiertos y escribir los datos cuando Access se cierra anormalmente, el motor de base de datos Jet puede marcar el archivo como sospechoso o dañado. Esto puede suceder si se apaga el sistema de forma manual sin cerrar primero Windows o si se produce un corte de alimentación. Hay otras circunstancias que no cierran Access, pero que pueden interferir con la escritura de datos de Jet en el disco mientras la base de datos está abierta. Esto puede suceder, por ejemplo, cuando las redes experimentan colisiones de datos o las unidades de disco funcionan incorrectamente. Si se producen algunas de estas interrupciones, el motor Jet marca la base de datos como posiblemente dañada.

Cuando Jet inicia una operación de escritura, se establece un indicador y restablece el indicador cuando se complete la operación. Si la operación de escritura se interrumpe, la marca permanece. Cuando intenta abrir la base de datos, Jet determina que el indicador está establecido e informa de que la base de datos está dañada. En la mayoría de los casos, este datos en la base de datos no está realmente dañados, pero las indicador establecer alertas Jet que pueden haberse producido daños. En casos como éste, la compactación y la reparación de la base de datos suele servir para restaurar la base de datos. Existen tres formas para determinar el usuario y la estación de trabajo responsables de marcar el archivo como sospechoso. Consulte la sección "Cómo para determinar qué usuarios y estaciones de trabajo está que causan el archivo para ser marcados sospechoso" más adelante en este artículo.

Hardware de red defectuoso

En este caso, el daño de archivo no es necesario el motor de base de datos Jet; en su lugar el archivo literalmente está dañado por alguna causa externa. La causa puede residir en una o varias conexiones de la cadena de hardware existente entre el equipo que alberga la base de datos y el equipo donde está abierta la base de datos. Esta lista incluye, pero no está limita a las tarjetas de interfaz de red, cableado de red, los enrutadores y concentradores.

Archivos .mdb que no se puede restaurar mediante el uso de compactación, reparación o Jetcomp normalmente indica daños basado en hardware. Los daños producidos por el hardware suelen ser recurrentes hasta que se repara o se sustituye el componente causante del problema.

Abrir y guardar el archivo MDB en otro programa

No hay ninguna forma para recuperar un archivo .mdb que se ha abierto y, a continuación, se guarda en un programa distinto A. Por ejemplo, Microsoft Word permite abrir una base de datos de Access y guárdelo (aunque no buena finalidad es hacerlo ya que si abre un archivo MDB en otro programa, todos los que puede ver están extendidos caracteres). Guardar el archivo de esta manera, hará que el archivo .mdb solicitar una contraseña de base de datos al intentar abrirlo en Access, aunque el archivo no puede haber nunca sido protegido con contraseña en Access. La solicitud de contraseña se produce en estos casos porque el primer byte intervalo que Access comprueba al abrir un archivo es donde sería la contraseña de la base de datos. Si ese byte contiene datos dañados, Access trata el archivo como protegido por contraseña. Incluso si no hubo una forma de sortear la solicitud de contraseña en este caso, la base de datos todavía sería irrecuperable porque la estructura binaria está codificada y, por lo tanto, Access no puede. La única solución posible en este caso consiste en recuperar una copia de seguridad del archivo. Para obtener información adicional acerca de este problema, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
223043ACC: Database Password aparece aunque IT nunca se establecer

Cómo determinar qué usuarios y estaciones de trabajo está que causan el archivo para ser marcados sospechosa

Puede determinar qué estación de trabajo y usuario provocado Jet marque un archivo .mdb como sospechosa con la utilidad LDBView, que está disponible mediante la descarga Jetutils.exe desde el siguiente sitio Web:
http://download.microsoft.com/download/access97/utility1/1/WIN98/EN-US/JETUTILS.EXE
Para obtener información adicional acerca de las utilidades de Microsoft Jet, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
176670ACC: Microsoft Jet utilidades disponibles en el Centro de descarga
Ldbview permiten observar qué usuarios han iniciado en la base de datos, así como los usuarios que han dejado el archivo en un estado sospechoso.

Pasos que se pueden llevar a ayuda evitar daños en la

  • Evitar los cortes de alimentación mientras se escribe en las bases de datos. Los cortes de alimentación pueden hacer que la base de datos pase al estado de sospechosa.
  • Evitar errores en las conexiones de red.
  • Evitar la terminación anómala de conexiones de Microsoft Jet, como pérdida de energía, cierre manual, que cierre Administrador de tareas de la aplicación y así sucesivamente.
  • Cuando programe, cierre todos los objetos Data Access Object (DAO) y ActiveX Data Objects (ADO) que ha abierto. Algunos ejemplos son Recordset , QueryDef , TableDef y objetos de base de datos .
  • Errores fatales del sistema provocan casi siempre el terminación anómala. Si la base de datos es susceptible de experimentar errores graves, es aconsejable solucionarlos antes de que los daños sean demasiado graves y la base no pueda abrirse ni recuperarse.Para obtener información adicional acerca de las utilidades de Microsoft Jet, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
    148424ACC: Solucionar errores fatales del sistema en Microsoft Access 95 y Microsoft Access 97
  • Compacte la base de datos a menudo.

    importante : no ejecute el comando Reparar base de datos en Access 97 a menos que Jet de Microsoft le pide que lo haga.
  • No ejecute IPX en Windows NT Server donde se encuentran las bases de datos Jet a través de la red y el cliente es Microsoft Windows 95 con IPX/SPX. En su lugar, ejecute TCP-IP en Windows NT Server y una pila de protocolo dual de IPX y TCP-IP en el cliente Windows 95. Windows NT a Windows NT con IPX/SPX no se causan el problema, ni tampoco Novell a cualquier cliente.
  • Evitar un gran número de operaciones de apertura y cierre en un bucle de (40.000 sucesivas operaciones a 1.000.000 a través.

Propiedades

Id. de artículo: 279334 - Última revisión: lunes, 29 de enero de 2007 - Versión: 3.5
La información de este artículo se refiere a:
  • Microsoft Access 97 Standard Edition
Palabras clave: 
kbmt kbdownload kbdownload kbhowto kbusage KB279334 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 279334
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna
El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com