DELETAR TODOS OS REGISTROS EM DAO

KELLY 29/07/2012 22:35:27
#406804
Boa noite gente,

Como faço para deletar todos os registros em DAO? Alguém tem um exemplo simples que possa enviar?

Grata

JOEYRFS 29/07/2012 23:07:43
#406805
Faz uma chamada de SQL com o
[Ô]TRUNCATE tabela[Ô]
Isso vai zerar toda a sua tabela
KELLY 29/07/2012 23:49:00
#406807
Joeyrfs, você tem um exemplo que possa me enviar? Sei fazer isso com LINQ e Entity, mas em VB6 não estou conseguindo e tenho que fazer esse código para limpar os dados de uma tabela temporária em um sistema antigo feito em VB6.
JOEYRFS 30/07/2012 08:39:15
#406810
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset([Ô]tabela[Ô], dbOpenDynaset)
Set rs = CurrentDb.OpenRecordset([Ô]TRUNCATE tabela[Ô], dbOpenDynaset)
MARCELOKROL 30/07/2012 12:49:34
#406855
Resposta escolhida
Assim tambem funciona:
  
Dim Db As DAO.Database

Db.Execute [Ô]delete * from SuaTabela[Ô]
NETMANIA 30/07/2012 17:09:21
#406886
A opção do truncate é mais rápido, pois se for um banco como SQL Server este não gera log ao contrário do comando delete.
KELLY 31/07/2012 00:18:48
#406908
Gente, obrigada pelos códigos, o banco de dados em uso é Access, um dos exemplos de código que está em uso no sistema e no meu ponto de vista não está correto é este:

Dim rs As Recordset
Set rs = dbBaseDados.OpenRecordset([Ô]select * from cliente[Ô])

Do While Not rs.EOF
rs.Delete
rs.MoveNext
Loop

Gostaria que vocês fizessem a análise e me dissessem.
Ah! Outra dúvida aproveitando o código postado pelo Joeyrfs, qual a finalidade do dbOpenDynaset, vejo muito ele nos códigos.

Obrigada mais uma vez a todos vocês!
MARCOLACERA 31/07/2012 08:39:24
#406910
Da forma como está o seu processo de exclusão, item por item no lado cliente, você terá um trafego maior na rede e um processo demorado (dependo da quantidade de registro). A proposta do colega MARCELOKROL é uma das melhores, pois o processo de exclusão será realizado por um único comando no lado cliente, após este, o próprio Banco, no Lado Servidor fará toda exclusão.
JOEYRFS 31/07/2012 09:11:36
#406914
Utilize o TRUNCATE .
MARCOLACERA 31/07/2012 10:07:02
#406922

Até a onde eu sei o DB do tipo Acess não reconhece o comando TRUNCATE, pois o mesmo não tem nenhum log.
KELLY 31/07/2012 21:41:28
#406974
Boa noite amigos!

Realmente o TRUNCATE não funciona, eu usei o código do MARCELOKROL e ficou bem rápido mesmo.

Obrigada a todos vocês pela ajuda!

Tópico encerrado , respostas não são mais permitidas