Bug ao Compactar e Reparar
Há bastante tempo, uma falha grave no compactar e reparar do Access 2007 vem pegando de surpresa muitos programadores. O que acontece é que no meio do processo do compactar e reparar, o Access pára e apresenta a seguinte mensagem:
"O Microsoft Office Access não pode excluir c:\SuaPasta\SeuBd.accdb após compactá-lo. O banco de dados compactado foi nomeado como c:\SuaPasta\Banco de dados.mdb"
Veja a mensagem na parte superior da imagem:

O Access, no seu processo normal de compactação e reparação, cria um novo arquivo com todos os objetos. Deleta o arquivo original e renomeia a cópia, que passa e ser o seu novo arquivo original.
Quando a falha do Access acontece e gera esta mensagem acima, o que se percebe é que ele deletou o arquivo original, mas não conseguiu renomear o arquivo copiado, que está íntegro, por sinal. Se você tiver a infelicidade de clicar no botão OK da mensagem, ele também irá deletar esta copia e você perderá o seu banco de dados definitivamente. E se você não tiver uma cópia de backup vai chorar, porque não há como recuperar.
Então, como proceder se esta falha acontecer ?
Não clique no OK em hipótese alguma.
Vá na pasta de origem do aplicativo e salve o arquivo que o Access nomeou como Bancodedados.mdb
Veja na figura abaixo a cópia do arquivo que realizei num teste:

Com a cópia realizada, você pode clicar no OK da mensagem. Renomeie esta cópia salva para o nome original do seu aplicativo, incluindo a alteração da extensão para accdb, se for o caso e pronto.
Tem alguma correção para este bug?
A Microsoft lançou uma correção (hotfix 950812) em abril de 2008, mas não está disponível para download diretamente. Quando entro na opção de solicitação de download, aparece a seguinte tela:

Observe que o quadro informa que esta correção estaria sendo lançada no Sp2.
De fato a incidência comigo deste problema diminui consideravelmente após a atualização com o Sp2, mas não resolveu em definitivo o problema.
Tem alguma forma de se evitar o problema?
Parece que o principal problema está relacionado com erros não verificados no nosso código VBA.
Siga então, os seguintes procedimentos:
Realize uma cópia de segurança sempre que for fazer alterações no seu banco de dados.
Após realizar alterações no seu código, use imediatamente o compilar do VBA para sanar quaisquer erros de sintaxe e/ou comandos cometidos por nós.
Com o código devidamente compilado, aí sim, você poderá usar o compactar e reparar.
Após ter compilado e compactado você pode ativar o compactar e reparar ao sair, se o desejar.
|
1 comentário(s) STELLA MARIS 13/5/2010 16:49:26 Avelino, Como sofri com esse BUG ! E Com sua ajuda consegui terminar meu BD Parabéns |