Pergunte aqui
1

Macro para limpar os registros de um banco de dados.

perguntadas 2016-04-17 19:49:08 +0100

imagem do gravatar de Jra

updated 2016-04-19 16:54:01 +0100

imagem do gravatar de Grafeno

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!

editar alterar tag assinalar como ofensivo fechar mesclar Excluir

1 Resposta

1

respondidas 2016-04-19 16:53:08 +0100

imagem do gravatar de Grafeno

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

editar assinalar como ofensivo Excluir Link mais
Login/Registrar para responder

Ferramentas de perguntas

1 seguidor

Estatísticas

Perguntadas: 2016-04-17 19:49:08 +0100

Lidas: 1,329 vezes

Última atualização: Apr 19 '16