Essa é para o amigo JPaulo
Estou usando este exemplo do forum a qual vc disponibilizou para um de nossos caros usuários.
Achei interessando e resolvi utilizar em meus projetos.
Fiz conforme sugerido e ele apresenta o seguinte erro:
Erro em Tempo de Execução 3075:
Erro de sintaxe (operador faltando) na expressão de Consulta 'Numero Conta'.
e Destaca a linha no VBA conforme abaixo:
o que fiz de errado??
Utilizei conforme orientado....segue abaixo exemplo do JPaulo a qual coletei do forum:
-------------------------------------------------------------------------------------------------------------------
Com este código, jamais irá ter duplicidade nas suas tabelas, apenas deve informar o nome da tabela, na chamada da função, assim:
Private Sub SeuBotao_Click()
Call DeletaRegistrosDuplicados("APARTAMENTO")
End Function
Cole num módulo novo e salve:
Public Function DeletaRegistrosDuplicados(strTabela As String)
'By JPaulo ® Maximo Access
Dim rst As DAO.Recordset, rst2 As DAO.Recordset
Dim tdf As DAO.TableDef
Dim fld As DAO.Field
Dim strSQL As String
Dim varX As Variant
Set tdf = DBEngine(0)(0).TableDefs(strTabela)
strSQL = "SELECT * FROM " & strTabela & " ORDER BY "
For Each fld In tdf.Fields
If (fld.Type <> dbMemo) And (fld.Type <> dbLongBinary) Then
strSQL = strSQL & fld.Name & ", "
End If
Next fld
strSQL = Left(strSQL, Len(strSQL) - 2)
Set tdf = Nothing
Set rst = CurrentDb.OpenRecordset(strSQL)
Set rst2 = rst.Clone
rst.MoveNext
Do Until rst.EOF
varX = rst.Bookmark
For Each fld In rst.Fields
If fld.Value <> rst2.Fields(fld.Name).Value Then
GoTo NextRecord
End If
Next fld
rst.Delete
GoTo SkipBookmark
NextRecord:
rst2.Bookmark = varX
SkipBookmark:
rst.MoveNext
Loop
rst.Close
MsgBox "Registros duplicados encontrado(s) e deletados com sucesso...", vbInformation
End Function
Estou usando este exemplo do forum a qual vc disponibilizou para um de nossos caros usuários.
Achei interessando e resolvi utilizar em meus projetos.
Fiz conforme sugerido e ele apresenta o seguinte erro:
Erro em Tempo de Execução 3075:
Erro de sintaxe (operador faltando) na expressão de Consulta 'Numero Conta'.
e Destaca a linha no VBA conforme abaixo:
o que fiz de errado??
Utilizei conforme orientado....segue abaixo exemplo do JPaulo a qual coletei do forum:
-------------------------------------------------------------------------------------------------------------------
Com este código, jamais irá ter duplicidade nas suas tabelas, apenas deve informar o nome da tabela, na chamada da função, assim:
Private Sub SeuBotao_Click()
Call DeletaRegistrosDuplicados("APARTAMENTO")
End Function
Cole num módulo novo e salve:
Public Function DeletaRegistrosDuplicados(strTabela As String)
'By JPaulo ® Maximo Access
Dim rst As DAO.Recordset, rst2 As DAO.Recordset
Dim tdf As DAO.TableDef
Dim fld As DAO.Field
Dim strSQL As String
Dim varX As Variant
Set tdf = DBEngine(0)(0).TableDefs(strTabela)
strSQL = "SELECT * FROM " & strTabela & " ORDER BY "
For Each fld In tdf.Fields
If (fld.Type <> dbMemo) And (fld.Type <> dbLongBinary) Then
strSQL = strSQL & fld.Name & ", "
End If
Next fld
strSQL = Left(strSQL, Len(strSQL) - 2)
Set tdf = Nothing
Set rst = CurrentDb.OpenRecordset(strSQL)
Set rst2 = rst.Clone
rst.MoveNext
Do Until rst.EOF
varX = rst.Bookmark
For Each fld In rst.Fields
If fld.Value <> rst2.Fields(fld.Name).Value Then
GoTo NextRecord
End If
Next fld
rst.Delete
GoTo SkipBookmark
NextRecord:
rst2.Bookmark = varX
SkipBookmark:
rst.MoveNext
Loop
rst.Close
MsgBox "Registros duplicados encontrado(s) e deletados com sucesso...", vbInformation
End Function