Como eliminar registros duplicados de una tabla de access dejando un único registro con vba

Agradezco su ayuda con un código de vba para un botón de access que verifique si hay registros repetidos en una tabla los eliminé y deje un único registro de los repetidos.

2 Respuestas

Respuesta
2

Le preparé este ejemplo

TABLA

Observe que están repetidos lo idcliente= 2 y 4, es decir, INES MARTINEZ PAEZ y JORGE OLMOS CRUZ

Función para retirar duplicados

Public Function retira_duplicado()
    On Error GoTo hay_error
    CurrentDb.Execute "DELETE * FROM tblclientes WHERE idcliente " _
                    & "NOT IN (SELECT Min(idcliente) FROM tblclientes GROUP BY  nombres, apellidos)"
    If Err.Number = 0 Then
       MsgBox "Duplicados retirados satisfactoriamente", vbInformation, "Le informo"
    End If
hay_error_exit:
  Exit Function
hay_error:
    MsgBox Err.Description, vbCritical, "Error..."
    Resume hay_error_exit
End Function

Ejemplo llamado de la función desde la ventana de inmediato, la puede llamar desde cualquier parte.

?retira_duplicado()

RESULTADO

TABLA ACTUALIZADA

Ya no están los registros idcliente=9 e idcliente=10 que eran los repetidos.

Le recomiendo hacer una copia de su base de datos antes de eliminar.

¡Gracias!  Me sirvió muchísimo y lo que necesitaba 

Me alegro, le sirve para otros casos solo cambie la tabla y los campos.

Respuesta
1

Mediante una consulta se puede obtener un conjunto de datos único basado en esa tabla.

Ello evitaría borrar registros que si son idénticos y están repetidos, denotan que la tabla no ha sido bien diseñada.

Es mas sencillo (en base a la consulta antes mencionada) crear una nueva tabla que cumpla las condiciones, que borrar datos de la actual que pueden tener valor (y se perderán sin remedio).

Toma la decisión optima para lo que necesites, define como/donde utilizaras el código y en base a ello obtendrás respuestas concretas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas