Como resolver e reparar uma danificado Access 2002 ou posterior da base de dados

Traduções de Artigos Traduções de Artigos
Artigo: 283849 - Ver produtos para os quais este artigo se aplica.
Principiante: Requer conhecimentos da interface do utilizador em computadores individuais.

Este artigo aplica-se apenas a uma base de dados do Microsoft Access (.mdb).

Para obter uma versão de Microsoft Access 97 deste artigo, consulte 279334.
Para obter uma versão de Microsoft Access 2000 deste artigo, consulte 209137.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Existem várias acções que poderá acontecer tanto dentro como fora do Access, que pode deixar o ficheiro de base de dados danificado (danificado). Os sintomas de uma base de dados danificada variam de # eliminado que aparecem em determinados registos, para que seja impossível abrir um dos objectos na base de dados, para que a conseguir abrir o ficheiro de base de dados no Access completamente. O utilitário Compactar e reparar do Microsoft Access é uma ferramenta útil para tentar optimizar ou tentar reparar ficheiros de base de dados do Microsoft Access. Este artigo descreve este utilitário de acesso e fornece outras alternativas para tentar reparar bases de dados danificadas. Este artigo também fornece informações sobre o que pode causar bases de dados danificados.

Nota Microsoft Jet, o motor de base de dados que é utilizado no Microsoft Access, é um ficheiro partilha de sistema de base de dados. Quando o Microsoft Jet é utilizado num ambiente multi-utilizador, vários processos são leitura, escrita e bloqueio numa base de dados partilhada. Uma vez que vários processos são leitura e escrita à mesma base de dados e porque Jet não utiliza um registo de transacções (como os sistemas de base de dados mais avançados, tais como SQL Server), não é possível evitar qualquer forma fiável e todas as bases de dados danos. Se tiver um sistema de base de dados para executar 24 horas por dia, sete dias por semana num ambiente multi-utilizador, a Microsoft recomenda que utilize um sistema de base de dados cliente/servidor true que suporta transacções duradouras, tais como o Microsoft SQL Server.

Mais Informação

Apesar dos passos descritos neste artigo serem normalmente utilizados com êxito na recuperação de base de dados de ficheiros danificados, para proteger os dados, a Microsoft recomenda que cria uma cópia cópia de segurança do ficheiro de base de dados com frequência como.

Descrição do utilitário de reparação e compactar

Compactar uma base de dados

Quando compactar uma base de dados, o processo de compactação irá recuperar o espaço não utilizado numa base de dados criado pelas eliminações de objectos e de registos. Fá-lo criando uma nova base de dados de destino e copiando cada objecto na base de dados antiga para a nova base de dados. 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 processo de compactação 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 a base de dados temporária para o nome da base de dados original.

Segue-se uma lista das acções que executa o processo de compactação:
  • Reorganiza as páginas de 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 se compactar a base de dados. Para bases de dados que objectos e registos são frequentemente adicionados, eliminados e actualizados, deve compactar frequentemente.
  • Repõe sucessivamente incrementados campos de numeração automática para que o próximo valor atribuído seja um mais que o valor mais elevado dos restantes registos. Por exemplo, se todos os registos na base de dados tiverem sido eliminados, depois de compactar 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 de compactar a base de dados, o valor de numeração automática campo será igual a 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. Isto normalmente acontece se são anuladas transacções ou se a base de dados não estiver fechada correctamente devido a uma perda de energia inesperada ou porque o computador é desligado antes de um programa que utilize o Microsoft Jet teve uma alteração ao sair completamente.
  • 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.
Reparar uma base de dados

O processo de reparação 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.

O que se certificar do antes de executar o utilitário Compactar e reparar '

Antes de executar o utilitário Compactar e reparar numa base de dados, certifique-se dos seguintes procedimentos:
  • Certifique-se que tem suficiente espaço de armazenamento no disco rígido para o original e as versões do Access compactadas base de dados. Isto significa que tem de ter disponível espaço suficiente para, pelo menos, duas vezes o tamanho da base de dados Access nessa unidade. Se necessitar de Liberte algum espaço, elimine ficheiros desnecessários nessa unidade ou, se possível, mova a base de dados do Access para uma unidade com mais espaço livre.
  • Certifique-se que tem permissões de abrir/executar e abrir em modo exclusivo para a base de dados do Access. Se for o proprietário da base de dados, certifique-se definir estas permissões. Se não lhe pertençam a base de dados, contacte o respectivo proprietário para saber se pode obter estas permissões.
  • Certifique-se que nenhum utilizador tem a base de dados Access aberta.
  • Certifique-se que a base de dados do Access não está localizado numa partilha de rede só de leitura ou tem o atributo de ficheiro definido para só de leitura.

Passos para tentar reparar uma base de dados danificada

Os seguintes passos descrevem um método geral que pode utilizar para tentar reparar uma base de dados danificada:
  1. Efectue uma cópia do ficheiro danificado da base de dados (.mdb) para que tenha uma cópia de segurança.
  2. Elimine o ficheiro .ldb caso esteja presente. Tem de fechar o ficheiro .mdb correspondente antes de eliminar o ficheiro .ldb.

    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 a base de dados Adamastor.mdb de dados de exemplo para utilização partilhada na pasta C:\Msoffice\Access, é automaticamente criado um ficheiro denominado Adamastor.ldb na mesma pasta. O ficheiro .ldb é automaticamente eliminado depois do último utilizador tiver saído a base de dados com estas 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. O ficheiro .ldb contém uma lista de utilizadores que têm a base de dados aberta.
  3. Execute o utilitário Compactar e reparar. Para o fazer, siga estes passos:
    1. Se a 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 e Reparar base de dados .
    3. Na caixa de diálogo base de dados a compactar , seleccione o ficheiro que pretende compactar e, em seguida, clique em Compactar .
    4. Na caixa de diálogo Compactar a base de dados para , introduza um novo nome de ficheiro e, em seguida, clique em Guardar .

      Se a compactação e reparação não tiver êxito, receberá uma mensagem informará do ocorrido. Tal significa que os danos são tão graves que não possa ser corrigido.
  4. 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.

    Nota Não pode importar páginas de acesso a dados com o Assistente de importação. Abra em vez disso, uma página de acesso de dados existente na nova base de dados. Para o fazer, siga estes passos:
    1. Na janela Base de dados, clique em páginas em objectos .
    2. Clique em Novo .
    3. Na caixa de diálogo Nova página de acesso a dados , clique em página Web existente e, em seguida, clique em OK .
    4. Na janela Localizar página Web , vá para a localização da página de acesso a dados.
  5. Se os danos estiverem numa tabela e os passos anteriores não têm recuperar a tabela, tente o seguinte:
    1. No Microsoft Access, exporte a tabela para um ASCII (texto delimitado) de ficheiro. Para obter mais informações consulte o tópico "Exportar dados ou base de dados de objectos." na 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. Volte a importar o ficheiro ASCII para a tabela recém-criada novamente. Para mais informações sobre este tópico, procure o índice remissivo do Microsoft Access ajuda para a palavra "delimitar" e, em seguida, visualize o tópico "Importar ou ligar dados e objectos".
    7. Reintroduza os registos que estivesse forçado a eliminar.
  6. 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 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 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.
  7. Se os danos estiverem numa macro ou um módulo, os danos podem ser na macro ou no módulo propriamente dito ou no conteúdo da macro ou o módulo. Pode eliminar a macro ou o 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 localizados na macro ou módulo propriamente dito, crie uma nova macro ou módulo e, em seguida, copiar 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.
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 o Microsoft Access na Internet newsgroups, consulte o seguinte artigo na base de dados de conhecimento da Microsoft: Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
287756Campo de numeração automática não é reposto depois de compactar uma base de dados

Porque é que podem ficar danificados ficheiros .mdb

Existem três razões principais por que razão um ficheiro .mdb poderá ficar danificado, da seguinte forma:
  • Operação de escrita interrompida
  • Hardware de rede danificado
  • Abrir e guardar o ficheiro .mdb noutro programa

Operação de escrita interrompida

Deve sair sempre correctamente Access 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 a base de dados como sendo suspeito ou como danificado. Isto pode acontecer se desactivar manualmente o computador sem primeiro Windows quitting ou se perder energia. Outras situações podem ocorrer que não encerre Access mas que ainda podem interferir com o Jet escrever dados no disco enquanto a base de dados está aberta. Isto poderá acontecer, por exemplo, quando redes detectar conflitos de dados ou quando unidades de disco não funcionar correctamente. Se ocorrer qualquer destas interrupções, o Jet poderá assinalar a base de dados como potencialmente danificada.

Quando Jet inicia uma operação de escrita,, em seguida define um sinalizador e, repõe o sinalizador quando a operação está 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, compactar ou reparar a base de dados (ou ambos) 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. Com o Microsoft Visual Basic for Applications no Access, pode imprimir uma lista de utilizadores com sessão iniciada numa base de dados específico.
208449O Microsoft Access newsgroups disponíveis na Internet
Para obter mais informações sobre como efectuar este procedimento, consulte a secção "Como determinar quais os utilizadores/estações de trabalho estão a causar o ficheiro a ser marcado como sendo suspeito" deste artigo.

Hardware de rede danificado

Por vezes, podem ocorrer danos sem motor de base de dados Jet ser envolvido. Por exemplo, hardware de rede danificado pode provocar um ficheiro ficar danificado. 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 noutro programa. Por exemplo, pode abrir e guardar um ficheiro .mdb do Microsoft Word, mas se pretender fazê-lo, nunca foi possível recuperar o ficheiro .mdb, excepto a partir de uma cópia de segurança. Se abrir acidentalmente um ficheiro .mdb noutra aplicação, não se esqueça não guardá-lo. Na realidade tem não finalidade abrir um ficheiro .mdb noutra aplicação uma vez que se o fizer, só verá é uma série de caracteres aparentemente aleatória.

Como determinar quais os utilizadores/estações de trabalho estão a causar o ficheiro a ser marcado como sendo suspeito

Quando resolver para determinar o que é a causa da base de dados danos, poderá ser necessário ver quem iniciou a sessão na base de dados. Com o Microsoft Visual Basic for Applications no Access 2002 ou no Access 2003, pode aceder a uma lista de utilizadores com sessão iniciada numa base de dados específico.
Para obter mais informações sobre como efectuar este procedimento, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
285822Como determinar quem tem sessão iniciada numa base de dados utilizando o Microsoft Jet UserRoster no Access 2002 ou no Access 2003

Passos que pode tomar para evitar danos

Para evitar danos na base de dados:
  • Evite falhas de energia durante a escrita da base de dados. Falhas de energia durante a escrita da base de dados 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 DAO e ADO que tenha aberto. 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 a recuperar.Para obter mais informações sobre como fazê-lo e exemplo de código que pode utilizar, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
    285822Como determinar quem tem sessão iniciada numa base de dados utilizando o Microsoft Jet UserRoster no Access 2002
    Para obter mais informações sobre erros fatais do sistema, clique números de artigo que se seguem para visualizar os artigos na base de dados de conhecimento da Microsoft:
    294301ACC2002: Como resolver erros fatais do sistema no Access 2002 em execução no Microsoft Windows 2000
  • Compacte a base de dados com frequência.
  • Não execute o IPX no Microsoft Windows NT Server onde Jet bases de dados estão localizados na rede e o cliente for o 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 Win95. (Windows NT para Windows NT com IPX/SPX irá não provocar o problema, nem irá Novell para qualquer outro cliente.)
  • Evite um elevado número de operações de abrir e fechar num ciclo (mais de 40.000 operações abrir e fechar sucessivas provocar danos).

Nota especial sobre bases de dados convertidas

Nas versões do Access anteriores ao Access 2002, se ocorreram erros enquanto que foram converter uma base de dados para a versão actual, ocorreu não forma fácil de determinar os objectos que foram afectados e possivelmente contém danos perceptível.

Quando Microsoft Access 2002 ou posteriores encontrar erros ao converter um ficheiro do Access, pode ver um resumo destes erros abrindo a tabela erros de conversão no novo ficheiro do Access. A conversão Tabela de erros contém as seguintes colunas:

tipo de objecto. O tipo de objecto da base de dados no qual Access encontrou um erro ou "Base de dados" Se o Access encontrou um erro que não é específica de um determinado tipo de objecto.

nome do objecto. O nome do objecto no qual o Access encontrou um erro. Se o Access encontrar um erro de compilação durante a conversão, no entanto, o nome do módulo que contém o erro não é especificado.

Descrição do erro: Se necessário, pode premir SHIFT+F2 para visualizar a descrição completa do erro.

Referências

Para mais informações sobre como reparar bases de dados, clique em Ajuda do Microsoft Access no menu de Ajuda escreva Reparar no Assistente do Office ou no Assistente de respostas e, em seguida, clique em Procurar para visualizar o tópico. Para obter informações adicionais sobre a resolução de bases de dados de versões anteriores do Access, clique números de artigo que se seguem para visualizar os artigos na base de dados de conhecimento da Microsoft:
209137Como resolver e reparar uma base de dados Jet 4.0 danificada
279334Como reparar uma base de dados Jet 3.5 danificada
109953Como resolver problemas/reparar danificadas Jet 3.0 e bases de dados anteriores
284152Como resolver erros fatais do sistema no Access 2002 em execução no Windows Millennium

Propriedades

Artigo: 283849 - Última revisão: 7 de maio de 2007 - Revisão: 6.4
A informação contida neste artigo aplica-se a:
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
Palavras-chave: 
kbmt kbcorrupt kbtshoot kbhowto KB283849 KbMtpt
Traduçã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: 283849

Submeter comentários

 

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