... Assinatura do site por 3 anos + Kit MontaRibbons + 3 Livros em PDF + Diversas Revistas (pdf) de brinde, por apenas R$182,00
(
podendo parcelar em até 10 vezes no cartão de crédito)...

Clique aqui e obtenha mais detalhes do nosso kit completo e de como comprar.


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:

Compactar e reparar

 

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:

Copia banco de dados

 

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:

hotfix 950812

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.

Sucesso!


 

 


5 comentário(s)

STELLA MARIS   13/05/2010 16:49:26

Avelino,
Como sofri com esse BUG !
E Com sua ajuda consegui terminar meu BD
Parabéns

Avelino   12/03/2011 12:41:42

Tenho sofrido ainda com ele. Fiz a opção pelo compactar ao fechar e a cada 10 execuções pelo menos um apresenta este problema, mesmo assim valeu pela dica !!!!

Marcelo Silva   07/06/2011 07:58:59

Gostaria de saber se existe alguma forma de eu colocar no formulario principal um comando VB para que ao atualizar o form principal a cada 3 minutos como eu programei ele primeiro faz o "COMPACTAR E REPARAR ", porque da minha pergunta.
Tenho duas consultas no meu banco, uma exclui todos os dados de uma tabela e a outra inclui novos dados para a mesma tebela.
Ao fazer isso uma vez, o ACCESS não permite gerar a macro que tem a consulta atualiza novamente, só deixa se eu clicar no atalho do "COMPACTAR E REPARAR " no ACCESS.
Fico grato caso tenha uma ideia de como eu posso sanar este problema pois ja recorri a todos por estes forum a fora, desde já obrigado.

Avelino Sampaio   07/06/2011 10:26:48

Marcelo

Está um pouco confuso o que vc deseja fazer.

Perguntas:

1) Qual o comando usado para compactar e reparar ?
2) Qual é versão do seu Access ?
3) Por que não usar o compactar e reparar uma única vez ao sair do aplicativo?

Responda pela seção "Contato" do site.

Prisleydisson   30/07/2014 09:29:17

muito jóia


Envie seu comentário: