Public Sub DeletaDuplicadosSemChavePrimaria()
Dim db As DAO.Database, rst As DAO.Recordset
Dim strNome As String, strSaveName As String
Set db = CurrentDb()
'abre o recordset da sua tabela, baseado em 3 campos todos por ordem ascendente
Set rst = db.OpenRecordset("SELECT * FROM SuaTabela ORDER BY Campo1, Campo2, Campo3 ASC;")
'verifica se existem registros na tabela
If rst.BOF And rst.EOF Then
MsgBox "Não existem registros..."
Else
'se existirem registros, coloca o recordset no primeiro
rst.MoveFirst
Do Until rst.EOF
'envia para a variavel, a concatenação dos 3 campos
strDupName = rst.Fields("Campo1") & rst.Fields("Campo2") & rst.Fields("Campo3")
If strDupName = strSaveName Then
'se a variavel concatenada, for igual à variavel já salva, deleta
rst.Delete
Else
'salva a concatenação
strSaveName = rst.Fields("Campo1") & rst.Fields("Campo2") & rst.Fields("Campo3")
End If
'avança outro registro
rst.MoveNext
Loop
Set rst = Nothing
Set db = Nothing
End If
End Sub
Deleta duplicados sem chave primaria
JPaulo- Moderador
- Respeito às regras :
Sexo :
Localização :
Mensagens : 11026
Registrado : 04/11/2009
- Mensagem nº1
Deleta duplicados sem chave primaria
.................................................................................
Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.
Pay-Pal R$ Aqui
Pay-Pal € Aqui
Ou ainda: Aqui (Novo)
Sucesso e Bons Estudos
Success and Good Studies
Utilize o Sistema de Busca do Fórum...
102 Códigos VBA Gratuitos...
Instruções SQL como utilizar...