Microsoft Access - Recuperando um Database corrompido


Neste artigo vou dar algumas instruções e dicas para recuperar um banco de dados Microsoft Access que foi corrompido. (fica por sua conta e risco seguir as instruções).

Eu já publiquei um artigo sobre esse assunto a muuuuuito tempo atrás (veja as referências...) e estou atualizando algumas informações. O objetivo é ajudar.

Não vou entrar no mérito se você deve ou não usar o Microsoft Access. Se você esta usando é porque tem um motivo para isso e sabe bem das limitações do Access.

Agora tenha em mente que como o banco de dados do Access é um único arquivo mdb/accdb, você pode perder tudo se ele ficar corrompido. Essa é uma ocorrência rara se o banco de dados estiver sendo executado em uma rede local confiável (ou em um único computador) e os objetos do banco de dados não estiverem sendo modificados.

A corrupção é muito mais provável durante o desenvolvimento, quando formulários e relatórios são criados e modificados, e o código está sendo gravado e depurado ou quando ele esta sendo usado para uma tarefa para a qual não foi criado, como acesso multiusuário intenso.

A maneira mais fácil de corromper um banco de dados Access é interromper uma operação de gravação, embora nas versões mais recentes isso não é tão simples assim.(melhorou um pouco...)

Então vamos ao que interessa...

Tentando recuperar um banco de dados MS Access corrompido

Existem muitas causas para corrupção do Access e de etapas de recuperação para sintomas específicos, mas aqui está uma seqüência padrão que lida com as formas mais comuns de corrupção em um banco de dados do Access.

Sequência de recuperação: (vou deixar as opções em português)

1- Backup

Faça uma cópia de backup do banco de dados inválido, sem sobrescrever nenhum backup existente.

O que quer que tenha ocorrido de mal, você não quer piorar a situação, e um backup oferece várias tentativas de recuperação.

2- Desmarque as caixas AutoCorrect

No Access 2007: Botão do Office | Opções de acesso | Banco de dados atual.

Nas versões anteriores: Ferramentas | Opções | Geral.

3- Compactar o banco de dados

No Access 2010: Compactar e reparar banco de dados na faixa de ferramentas de banco de dados.

No Access 2007: Botão do Office | Gerenciar | Compactar / Reparar.

Nas versões anteriores: Ferramentas | Utilitários de banco de dados | Compactar / Reparar.

4- Decompilar o banco de dados

Feche o Access e digite no prompt de comando:

   "C:\Arquivos de Programas\ Microsoft office \office\msaccess.exe" /decompile "c: \Seu_caminho\Seu_BancodeDados.mdb"

Use o caminho para onde o msaccess.exe está localizado no seu computador e inclua as aspas.

5- Compactar novamente

Abra o Access (mantendo pressionada a tecla Shift, se você tiver qualquer código de inicialização), e compacte novamente.

Faça isso duas vezes: um compactação não funciona em todas as versões (a menos que você feche o Access entre as etapas 4 e 5.)

6- Defina as referências mínimas

Abra uma janela de código.

Escolha as referências no menu Ferramentas.

Desmarque todas as referências que você não precisa usar.

7- Compilar

Ainda na janela de código, escolha a opção Compilar no menu Debug.

Corrija qualquer erro e repita até que o código seja compilado corretamente.

8- Defina as opções de código

Ainda na janela de código, escolha Opções no menu Ferramentas.

Na guia Geral, verifique se a opção Interceptação de erro está definida como "Interromper erros não tratados" e se a opção  Compilar sob demanda está desmarcada.

Se você chegou até aqui, neste ponto, você deve ter um banco de dados onde, pelo menos na teoria:

      Os erros de AutoCorreção de nome desapareceram,

     Os índices estão reparados,
     As inconsistências entre o texto e as versões compiladas do código foram corrigidas,
     As ambigüidades de referência estão resolvidas,
     A sintaxe do código agora é compilável e
     As opções do VBA estão definidas para mostrar erros e evitar esse tipo de corrupção.

Se você ainda estiver com problemas , tente usar o recurso não documentado :  SaveAsText/LoadFromText (*)

(*) Nota: Essa é uma técnica não documentada que pode resgatar um formulário ou relatório incorreto exportando-o para um arquivo de texto e instruindo o Access a recriá-lo a partir do arquivo de texto.

Espero que essas  instruções possam te ajudar de alguma forma.

Se nada funcionou então talvez você tenha que recorrer a pessoal especializado nesse tipo de recuperação, e, preparar o bolso...

"E disse-lhe um: Senhor, são poucos os que se salvam? E ele lhe respondeu:
Porfiai por entrar pela porta estreita; porque eu vos digo que muitos procurarão entrar, e não poderão."

Lucas 13:23,24

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

Referências:


José Carlos Macoratti