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