Pessoal pesquisei na net, mais não encontrei algo que preciso, é possível através de uma consulta exclusão excluir apenas um registro da tabela. Ex.: Em uma caixa de listagem quero excluir um determinado registro que está nesta caixa de listagem, clico sobre este registro e gostaria de exclui-lo. tentei com consulta exclusão mais exclui todos os registros.
[Resolvidos]Exclusão-excluir duplicados por seleção

hcastro- Intermediário

- Localização:

Mensagens: 104
Registrado: 09/11/2009
- Mensagem nº1
[Resolvidos]Exclusão-excluir duplicados por seleção

topbr- Developer

- Localização:

Mensagens: 760
Registrado: 21/01/2010
Aproveitando o embalo, rs, tambem preciso do critério para consulta exclusão para excluir registros duplicados, mas deixar somente 1, ex.
Id - NF - Fornecedor
01 - 1111 - Fulano
02 - 1111 - Fulano
03 - 2222 - Ciclano
Excluir somente um registro dos registros duplicados. Se a NF for = ao Fornecedor duas ou mais vezes, excluir.
Abraço, e desculpe me intrometer em seu tópico, mas acho que era na mesma linha a duvida.
Id - NF - Fornecedor
01 - 1111 - Fulano
02 - 1111 - Fulano
03 - 2222 - Ciclano
Excluir somente um registro dos registros duplicados. Se a NF for = ao Fornecedor duas ou mais vezes, excluir.
Abraço, e desculpe me intrometer em seu tópico, mas acho que era na mesma linha a duvida.

Alexandre Neves- Moderador Global

- Localização:

Mensagens: 1028
Registrado: 05/11/2009
Boa noite,
topbr: Tem de ter no registo seleccionado um campo exclusivo do registo(por exemplo, NumRegisto) e utilize o código CurrentDb.Execute "DELETE * FROM Tabela WHERE NumRegisto=" & NumRegisto & ";"
hcastro: Para a sua necessidade, execute este procedimento
Sub ApagaDuplicados()
Dim Rst as Dao.recordset, strId as string, strNF as string, strFornecedor as string, PrimeiroRegisto as boolean
PrimeiroRegisto=True
set rst=currentdb.openrecordset ("SELECT ID, NF, FORNECEDOR FROM Tabela ORDER BY ID, NF, Fornecedor;")
do while not rst.eof
if primeiroregisto then
primeiroregisto=false
strid=rst("id"): strnf=rst("nf"):strfornecedor=rst("Fornecedor")
elseif strid=rst("id") and strnf=rst("nf") and strfornecedor=rst("fornecedor") then
rst.delete
else
strid=rst("id"): strnf=rst("nf"):strfornecedor=rst("Fornecedor")
end if
rst.movenext
loop
set rst=nothing
end sub
topbr: Tem de ter no registo seleccionado um campo exclusivo do registo(por exemplo, NumRegisto) e utilize o código CurrentDb.Execute "DELETE * FROM Tabela WHERE NumRegisto=" & NumRegisto & ";"
hcastro: Para a sua necessidade, execute este procedimento
Sub ApagaDuplicados()
Dim Rst as Dao.recordset, strId as string, strNF as string, strFornecedor as string, PrimeiroRegisto as boolean
PrimeiroRegisto=True
set rst=currentdb.openrecordset ("SELECT ID, NF, FORNECEDOR FROM Tabela ORDER BY ID, NF, Fornecedor;")
do while not rst.eof
if primeiroregisto then
primeiroregisto=false
strid=rst("id"): strnf=rst("nf"):strfornecedor=rst("Fornecedor")
elseif strid=rst("id") and strnf=rst("nf") and strfornecedor=rst("fornecedor") then
rst.delete
else
strid=rst("id"): strnf=rst("nf"):strfornecedor=rst("Fornecedor")
end if
rst.movenext
loop
set rst=nothing
end sub

topbr- Developer

- Localização:

Mensagens: 760
Registrado: 21/01/2010
Ok, muito obrigado Alexandre!!!!

hcastro- Intermediário

- Localização:

Mensagens: 104
Registrado: 09/11/2009
OK, Valew, perfeito

STELLAMARIS- Avançado

- Localização:

Mensagens: 229
Registrado: 15/03/2010
HCastro / Alexandre
boa tarde
estou com o mesmo problema, mas não sei onde coloco o procedimento pode me ajudar?
grata
Stella
boa tarde
estou com o mesmo problema, mas não sei onde coloco o procedimento pode me ajudar?
grata
Stella

hcastro em Qua 07 Abr 2010, 10:32 pm