Macro para limpar os registros de um banco de dados.

Estou precisando de uma macro para limpar todos os registros de um banco de dados, ou seja, quero colocar um botão que quando acionado limpa o banco de dados. Já tentei vários mas todos estão dando problemas, eu tinha o mesmo banco no access e consegui fazer porém no libre base não está dando certo. Alguém sabe como fazer? Obrigado!

Um método eficaz, e até perigoso, para isso é executar a instrução DELETE dentro da macro. Usando DELETE FROM “Nome_Tabela” o Base apagará todos os registros da tabela de maneira silenciosa e sem volta. Por isso é importante trabalhar com backups do Banco de Dados e usar esse comando com muito cuidado.

A macro, que deve ser executada a partir de um botão em um formulário com a instrução acima, fica da seguinte forma:

Sub ApagarRegistros ( oEv )
Dim oDoc As Object, oConexAtiva, oInstSQL As Object
Dim sSQL As String
	
   ' Iniciar os objetos
   oDoc = ThisDataBaseDocument
   oConexAtiva = oDoc.CurrentController.ActiveConnection
   OInstSQL = oConexAtiva.createStatement()
	
   ' Instrução SQL
   ' O nome da tabela deve vir dentro de duas aspas "" ""
   ' para o comando ser executado	   
   sSQL = "DELETE FROM ""T-Produtos"""	
   ' Excutar a Instrução SQL
   OInstSQL.Execute( sSQL )

   ' Recarregar o Formulário
   oForm = oEv.Source.Model.Parent
   oForm.Reload
End Sub

Todos os registros da tabela especificada serão apagados. E caso seu banco tenha mais tabelas, vc pode repetir o trecho do código que executa a instrução fazendo as devidas alterações.

  • Obs.: Se quiser ainda reiniciar o campo com valor automático, pode fazer como nesta resposta: ZERAR ID AUTOMÁTICO. Inclusive é possível colocar a instrução para ser executada dentro da macro, desde que se atente para o fato de que o nome da tabela e do campo devem vir dentro de duas aspas “” “”.

Atte,
Grafeno