Artigo: 279334 - Última revisão: segunda-feira, 29 de Janeiro de 2007 - Revisão: 3.5

ACC97: Como reparar uma base de dados Jet 3.5 danificada

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Moderado: Requer básica macros, codificação e interoperabilidade competências.

Para obter do Microsoft Access 2.0/Jet 2.x e Access 95/Jet 3.0 versão deste artigo, consulte 109953  (http://support.microsoft.com/kb/109953/EN-US/ ) .

Para obter uma versão de Microsoft Access 2000/Jet 4.0 deste artigo, consulte 209137  (http://support.microsoft.com/kb/209137/EN-US/ ) .

Nesta página

Expandir tudo | Reduzir tudo

Sumário

Factores ambientais podem deixar o ficheiro de base de dados danificado. Os sintomas de uma base de dados danificada variam de # eliminado que aparecem em determinados registos, para a incapacidade de abrir um dos objectos na base de dados, à total impossibilidade de abrir o ficheiro no Access. Os utilitários Reparar e Compactar no Microsoft Access são ferramentas úteis para recuperar e optimizar ficheiros de base de dados do Microsoft Access. Este artigo descreve estes utilitários e fornece outras alternativas para reparar bases de dados danificados. Além disso, são fornecidas informações sobre o que pode causar danos na secção "Típica faz com que o da MDB danos em ficheiros" deste artigo.

Mais Informação

Embora os passos descritos neste artigo serem, normalmente, utilizados com êxito na recuperação de base de dados de ficheiros danificados, para proteger os dados, deve criar uma cópia do ficheiro de base de dados com frequência possível.

A reparar e compactar utilitários

O utilitário de reparação

O utilitário de reparação pode corrigir bases de dados com determinados tipos de danos. -Tenta reparar apenas as tabelas, consultas e índices na base de dados. -Não tenta reparar danificados formulários, relatórios, macros ou módulos; no entanto, não, copia-os para a nova base de dados reparada.

importante : executar o comando Reparar base de dados apenas quando o motor de base de dados do Microsoft Jet devolve uma mensagem de erro que indica que o utilitário Reparar deve ser executado. O comando Reparar base de dados não deve ser executado sob mais nenhuma circunstância.

Utilitário de compactação

O utilitário Compactar elimina o espaço vazio numa base de dados existente. Fá-lo cria uma nova base de dados de destino e copiando cada objecto de base de dados antiga para o novo. Se optar por compactar a base de dados para o nome de base de dados original em vez de para uma nova base de dados, o utilitário Compactar cria uma base de dados temporária, exporta todos os objectos da base de dados original para a base de dados temporária, remove a base de dados original e, em seguida, muda o nome da base de dados temporária para nome da base de dados original.

importante : Compactar a base de dados frequentemente é a melhor manutenção preventiva para um ficheiro .mdb. Segue-se uma lista de acções que pelo utilitário Compactar.
  • Reorganiza as páginas uma tabela de modo a que residam em páginas adjacentes da base de dados. Isto melhora o desempenho porque a tabela já não está fragmentada na base de dados.
  • Recupera o espaço não utilizado criado pelas eliminações de objectos e de registos. Quando são eliminados objectos ou registos da base de dados, o espaço ocupados que é assinalado como estando disponível para novas adições à base de dados. No entanto, o tamanho da base de dados nunca diminui, excepto se a base de dados for compactada. Para bases de dados que objectos e registos são frequentemente adicionados, eliminados e actualizados, deve compactar frequentemente.
  • Repõe incrementar campos de numeração automática para que o próximo valor atribuído seja um mais do que o valor mais alto dos restantes registos. Por exemplo, se todos os registos na base de dados tiverem sido eliminados, depois de compactada a base de dados, o valor no campo Numeração automática será igual a 1 quando é adicionado o próximo registo. Se o valor mais elevado do numeração automática da base de dados for 50, depois da compactação, o valor passará a ser 51 quando for adicionado o próximo registo. Note que isto também é verdadeiro mesmo registos com valores superiores a 50 foram adicionados anteriormente entanto foram eliminados antes de compactar.
  • Regenera as estatísticas da tabela utilizadas no processo de optimização de consultas. Estas estatísticas podem ficar desactualizadas ao longo do tempo, normalmente se terem sido anuladas transacções ou a base de dados não ter sido fechada correctamente devido a perda de energia ou se não conseguir completamente sair do programa através do Microsoft Jet antes de desligou o computador.
  • Assinala todas as consultas para que sejam novamente compiladas da próxima vez que a consulta é executada. Isto é importante porque as estatísticas de base de dados podem mudar e uma consulta compilada anteriormente poderão ter um plano de consulta incorrecto.

Directrizes importantes para compactar uma base de dados

Antes de compactar uma base de dados, é necessário cumprir as seguintes condições:

O utilizador compactar a base de dados deve ter sessão iniciado utilizando uma conta que tenha Modificar estrutura ou administrar permissões de segurança para todas as tabelas na base de dados.

Espaço em disco suficiente deve existir para as versões originais e compactadas da base de dados, mesmo que a base de dados está a ser compactada através da interface de utilizador do Microsoft Access utilizando o mesmo nome de ficheiro. A base de dados compactada nome é mudado como a base de dados original apenas quando a compactação é efectuada com êxito.

Outros utilizadores não pode ter a base de dados aberta. Quando uma base de dados é compactada, tem de ser aberta exclusivamente pelo Microsoft Jet para impedir que outros utilizadores acedam e modifiquem a base de dados durante o processo.

Recuperar base de dados danificada

Se tiver números de erro do Microsoft Jet 3.x 3197, 3343 ou 3015, também consulte o seguinte artigo na base de dados de conhecimento da Microsoft:
182867  (http://support.microsoft.com/kb/182867/EN-US/ ) ACC: Motor de base de dados Jet 3.x mensagens de erro devido a danos em
Os seguintes passos descrevem um método geral para reparar uma base de dados danificada:
  1. Efectue uma cópia do ficheiro danificado da base de dados (.mdb) como uma cópia de segurança.
  2. Certifique-se que o ficheiro .mdb está fechado e elimine o ficheiro .ldb correspondente, se este existir.

    Nota : O ficheiro .ldb é utilizado para determinar quais os registos estão bloqueados numa base de dados partilhada e por quem. Se uma base de dados estiver aberta para utilização partilhada, será criado o ficheiro .ldb com o mesmo nome que a base de dados correspondente (.mdb). Por exemplo, se abrir (para utilização partilhada) a base de dados de exemplo Adamastor.mdb na pasta C:\Program Files\Microsoft Office\Office\Samples, é automaticamente criado um ficheiro denominado Adamastor.ldb na mesma pasta. O ficheiro .ldb será automaticamente eliminado depois do último utilizador tiver saído a base de dados com duas excepções: quando o último utilizador não tem permissões de eliminação da pasta que contém o ficheiro .mdb, ou quando a base de dados está danificada.

    Para obter informações adicionais sobre ficheiros .ldb, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
    136128  (http://support.microsoft.com/kb/136128/EN-US/ ) ACC: Introdução aos ficheiros .ldb (95/97)
    Na resolução que está a causar danos na base de dados, pode ver o conteúdo dos ficheiros .ldb executando o utilitário LDBView. Para obter informações sobre este utilitário, consulte a secção "Como determinar o que os utilizadores/estações de trabalho que tem que o ficheiro seja assinalado como sendo suspeito" deste artigo.
  3. Execute o utilitário Compactar do seguinte modo:
    1. Se uma base de dados estiver aberta, feche-a.
    2. No menu Ferramentas , aponte para Utilitários de base de dados e, em seguida, clique em Compactar base de dados .

      Neste ponto, verifique a base de dados para ver se os danos foi reparado. Caso contrário, continue com os restantes passos.
  4. Se os danos estiverem numa tabela, consulta ou índice, execute o utilitário Reparar do seguinte modo:

    importante : executar o comando Reparar base de dados apenas quando o motor de base de dados Microsoft Jet apresentar uma mensagem a indicar que o utilitário Reparar deve ser executado. O comando Reparar base de dados não deve ser executado sob mais nenhuma circunstância.
    1. Se uma base de dados estiver aberta, feche-a.
    2. No menu Ferramentas , aponte para Utilitários de base de dados e, em seguida, clique em Reparar base de dados .
    3. Seleccione o ficheiro danificado na caixa de diálogo Reparar base de dados e, em seguida, clique em Reparar .

      Se a reparação tiver êxito, receberá a seguinte mensagem:
      <path>Reparou com êxito a base de dados '<caminho> < nome da base de dados >'.
      Se a reparação não tiver êxito, receberá uma mensagem informará do ocorrido. Isto significa que os danos ocorridos na tabela, consulta ou índice são tão graves que não podem ser corrigidos ou que os danos estão num objecto que o utilitário de reparação não é afectado.
  5. Se os danos estiverem numa tabela e os passos anteriores não o tiverem recuperado, tente o seguinte:
    1. No Microsoft Access, exporte a tabela para um ficheiro ASCII (texto delimitado). Para mais informações sobre este tópico, procure o expressão "ficheiro de texto delimitado" e, em seguida, visualize o tópico "Exportar dados do Access" utilizando o índice remissivo da ajuda do Microsoft Access.
    2. Elimine quaisquer relações associadas a esta tabela e, em seguida, elimine a tabela da base de dados.
    3. Compacte a base de dados.
    4. Recrie a tabela e as relações que tinha.
    5. Utilizar um processador, examine o ficheiro ASCII para dados danificados ou estranhos e remova esses registos. Guarde o ficheiro num formato de ficheiro de texto ASCII.
    6. Voltar a importar o ficheiro ASCII para a tabela recentemente recriada. Para obter mais informações sobre este tópico, procura na expressão "ficheiro de texto delimitado" e, em seguida, visualize o tópico "Importar ou ligar" utilizando o índice remissivo da ajuda do Microsoft Access.
    7. Volte a introduzir quaisquer registos que tenham sido forçado a eliminar.
  6. Se os passos anteriores falharem recuperar a base de dados danificada, tente criar uma nova base de dados e importando os objectos, um por um, a partir da base de dados antiga para o novo. Em seguida, recrie as relações. Esta técnica resolve problemas relacionados com tabelas de sistema danificados na base de dados.
  7. Se os danos estiverem num formulário ou relatório, o problema pode ser no formulário ou relatório propriamente dito ou num ou mais controlos no formulário ou relatório. Pode eliminar o formulário ou relatório e importá-lo da cópia de segurança da base de dados ou utilizar uma das seguintes opções:
    • Se os danos estiverem localizados no formulário ou relatório propriamente dito, crie um novo formulário ou relatório novo e, em seguida, copie os controlos do formulário ou relatório original.
    • Se os danos for num controlo de formulário ou relatório, crie um novo formulário ou relatório novo e, em seguida, voltar a criar os controlos no novo formulário ou relatório. Recomenda-se recriar todos os controlos, porque não existe nenhuma forma de identificar os controlos danificados.
  8. Se os danos estiverem numa macro ou num módulo, podem estar a macro ou no módulo propriamente dito ou com o conteúdo da macro ou o módulo. Pode eliminar a macro ou módulo e importá-lo da cópia de segurança da base de dados ou utilizar uma das seguintes opções:
    • Se os danos estiverem numa macro ou no módulo propriamente dito, crie uma nova macro ou um novo módulo e, em seguida, copie o conteúdo da macro ou módulo original.
    • Os danos podem envolver caracteres não ASCII incorporados no módulo. Guarde o módulo como um ficheiro de texto, remova todos os dados danificados ou estranhos e volte a carregar o ficheiro de texto num módulo novo.
    • Se os danos estiverem no conteúdo da macro ou módulo, tem de criar uma nova macro ou módulo e, em seguida, voltar a criar o conteúdo da macro ou módulo original.
  9. Se os danos envolvem a ser não é possível abrir o módulo de classe de um formulário ou relatório ou a vista de estrutura de um módulo, poderá tentar o parâmetro de linha de comandos /decompile . É vivamente recomendado que fazer uma cópia de segurança da base de dados antes de tentar este método. Segue-se um exemplo de comando com o parâmetro /decompile onde MSAccess.exe estiver na localização predefinida e a base de dados que DB1.mdb está na pasta C:\:
    C:\Program Files\Microsoft Office\Office\MSAccess.exe /decompile C:\DB1.mdb
    Depois de executar este comando a partir da caixa Executar , lhe for pedido para compilar a base de dados depois de utilizar /decompile .
  10. Considere transferir o utilitário Jetcomp.exe. Executar o utilitário Jetcomp.exe pode em alguns casos reparar bases de dados que são irrecuperáveis. Para obter informações adicionais sobre como obter o JETCOMP.exe, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
    172733  (http://support.microsoft.com/kb/172733/EN-US/ ) Versão actualizada do Microsoft Jet 3.5 disponível para transferência
Se não conseguir reparar a base de dados com estes passos, a base de dados, provavelmente, está danificado irremediavelmente. Se for este o caso, deverá restaurar a última cópia de segurança da base de dados ou recriar a base de dados.

Como alternativa final, alguns consultores poderão fornecer um serviço de reparação de base de dados do Microsoft Access. Como se trata de um serviço especializado, a forma mais eficaz de localizar um consultor consiste enviar uma mensagem no newsgroup da Internet do Microsoft Access "Third Party and User Groups", que tem o seguinte endereço de newsgroups:
Microsoft.public.Access.3rdpartyusrgrp
Para obter informações adicionais sobre os newsgroups do Microsoft Access na Internet, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
150057  (http://support.microsoft.com/kb/150057/EN-US/ ) ACC: Microsoft Access Newsgroups disponíveis na Internet

Causas normais de danos em ficheiros MDB

Existem três causas principal de danos em ficheiros mdb do Access/Jet.

Base de dados é suspeita/Corrupted concluir a operação de escrita interrompida

Deve sempre sair Access correctamente, clicando em Sair ou Fechar no menu ficheiro . Se uma base de dados estiver abertos e escrever dados quando o Access é encerrado, o motor de base de dados Jet poderá assinalar o ficheiro como sendo suspeito ou como danificado. Isto pode acontecer se o computador for desligado manualmente sem que o Windows tenha sido encerrado primeiro ou se houver uma perda de energia. Outras situações poderão não provocar o encerramento do Access mas, ainda poderão interferir com Jet escrita de dados para o disco enquanto a base de dados está aberta. Isto pode acontecer, por exemplo, quando as redes detectarem conflitos entre os dados ou falhas de funcionamento das unidades de disco. Se ocorrer qualquer um destes interrupções, o Jet poderá assinalar a base de dados como potencialmente danificada.

Quando Jet inicia uma operação de escrita, define um sinalizador e repõe o sinalizador quando a operação é concluída. Se uma operação de escrita for interrompida, o sinalizador permanecerá definido. Quando tenta abrir novamente essa base de dados, o Jet determinará que o sinalizador está definido e comunicará que a base de dados está danificada. Na maioria dos casos, os dados da base de dados não estão, de facto, danificados; no entanto os alertas de sinalizador conjunto Jet que podem ter ocorrido danos. Em casos como esta, compactação e/ou reparar a base de dados pode restaurar, normalmente, a base de dados. Felizmente, existem formas de determinar qual o utilizador e a estação de trabalho foi responsável pela marcação do ficheiro como sendo suspeito. Consulte a secção "Como determinar o que os utilizadores/estações de trabalho que tem que o ficheiro seja assinalado como sendo suspeito" mais adiante neste artigo.

Hardware de funcionamento em rede com problemas

Neste caso, o ficheiro danificado não envolve o motor de base de dados Jet; em vez do ficheiro é literalmente danificado por uma causa externa. A causa pode ser um ou mais ligações da cadeia de hardware entre o computador em que a base de dados reside e o computador que tenha a base de dados aberta. Esta lista inclui, mas não está limita a placas de interface de rede, cabos de rede, routers e concentradores.

Danos baseada em hardware são indicados pelos ficheiros .mdb que não podem ser restaurados através da utilização de compactação, reparação ou Jetcomp. Danos em hardware, normalmente, irão Repetir até que o hardware responsável seja reparado ou substituído.

Abrir e guardar o ficheiro MDB noutro programa

Não é possível recuperar um ficheiro .mdb que tenha sido aberto e, em seguida, guardado num programa diferente do Access. Por exemplo, o Microsoft Word permite-lhe abrir uma base de dados do Access e, em seguida, guardá-lo (embora serve não boa objectivo para o fazer porque se abrir um ficheiro MDB noutro programa, só que poderá ver caracteres expandidos). Guardar o ficheiro desta forma fará com que o ficheiro .mdb solicite uma palavra-passe de base de dados quando tentar abrir no Access, mesmo que o ficheiro nunca tenha estado protegido por palavra-passe no Access. O pedido de palavra-passe acontecerá nestes casos porque o primeiro byte intervalo que o Access verifica quando abre um ficheiro é onde seria a palavra-passe da base de dados. Se esse byte contiver dados danificados, o Access trata o ficheiro como estando protegido por palavra-passe. Mesmo que existisse uma forma de contornar o pedido de palavra-passe neste caso, a base de dados ainda possível recuperar uma vez que a estrutura binária está codificada e conseguiria assim ilegível para o Access. Recuperar uma cópia de segurança cópia do ficheiro é a solução apenas neste caso. Para obter informações adicionais sobre este problema, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
223043  (http://support.microsoft.com/kb/223043/EN-US/ ) ACC: Apresentação de palavra-passe da base de dados apesar de esta nunca ter sido definida

Como determinar que os utilizadores/estações de trabalho tem fazer com que o ficheiro ser marcada suspeita

Pode determinar que estação de trabalho e utilizador causado Jet marcar um ficheiro .mdb como sendo suspeito com o utilitário LDBView, que está disponível transferindo Jetutils.exe a partir do seguinte Web site da Microsoft:
http://download.microsoft.com/download/access97/utility1/1/WIN98/EN-US/JETUTILS.EXE (http://download.microsoft.com/download/access97/utility1/1/win98/en-us/jetutils.exe)
Para obter informações adicionais sobre os utilitários de Jet da Microsoft, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
176670  (http://support.microsoft.com/kb/176670/EN-US/ ) ACC: Microsoft Jet utilitários disponíveis no Centro de transferências
Ldbview permite-lhe observar os utilizadores que tem sessão iniciados numa base de dados, bem como quaisquer utilizadores que podem ter deixado o ficheiro num estado suspeito.

Os passos que pode obter a ajuda impedir a Corrupção

  • Evite falhas de energia durante a escrita da base de dados. Falhas de energia podem causar a base de dados fique num estado suspeito.
  • Evite interromper ligações de rede.
  • Evite anormais de ligações do Microsoft Jet, tais como perda de energia, encerramento manual, encerramento do Gestor de tarefas a ter a aplicação e assim sucessivamente.
  • Quando estiver a programar, feche todos os objectos de objecto de acesso a dados (DAO) e ActiveX Data Objects (ADO) que estejam abertas. Os exemplos incluem conjunto de registos , QueryDef , TableDef e objectos de base de dados .
  • Erros de sistema fatais provocam, quase sempre anormais. Se a base de dados for sujeito a erros fatais, deverá resolver os erros antes que a base de dados fique demasiado danificada para abrir ou recuperar.Para obter informações adicionais sobre os utilitários de Jet da Microsoft, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
    148424  (http://support.microsoft.com/kb/148424/EN-US/ ) ACC: Resolução de problemas com erros fatais do sistema no Microsoft Access 95 e no Microsoft Access 97
  • Compacte a base de dados com frequência.

    importante : não executado o comando Reparar base de dados no Access 97 a menos que do Microsoft Jet lhe peça para fazê-lo.
  • Não execute o IPX no Windows NT Server onde as bases de dados Jet estiverem localizadas na rede e o cliente for Microsoft Windows 95 com IPX/SPX. Em vez disso, execute o TCP / IP no Windows NT Server e uma pilha de protocolos dupla de IPX e TCP / IP no cliente Windows 95. Windows NT para Windows NT com IPX/SPX não será causar o problema, nem procedimento Novell para qualquer outro cliente.
  • Evite um elevado número de operações de abrir e fechar num ciclo (de 40.000 abertura/fecho operações sucessivas a mais de 1.000.000.

A informação contida neste artigo aplica-se a:
  • Microsoft Access 97 Standard Edition
Palavras-chave: 
kbmt kbdownload kbdownload kbhowto kbusage KB279334 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 279334  (http://support.microsoft.com/kb/279334/en-us/ )
Retired KB ArticleExclusão de Responsabilidade para Conteúdo sem Suporte na KB
Este artigo foi escrito sobre produtos para os quais a Microsoft já não fornece suporte. Por conseguinte, este artigo é oferecido "tal como está" e deixará de ser actualizado.