Ayuda con selección y eliminación de duplicados

Saludos.
Tengo una tabla con registros duplicados, las variables son: evento(E), tipo de identificación(T), número de identificación(I) y ajuste(A).
Cómo creo una macro que elimine lo siguiente:
1) Eliminar registros con igual E, T, I pero con ajuste = 0 siempre y cuando exista otro registro igual pero con ajuste > 0.
eJ:
E     T           I             A
1 CC 2222 0
1 CC 2222 6
1 CC 3333 0
1 CC 7777 0
1 CC 7777 7
Debe eliminar :
1 CC 2222 0
1 CC 7777 0
Gracias por cualquier ayuda

1 respuesta

Respuesta
1
Hazlo mejor desde VB, create un botón en un formulario, en el evento "al hacer clic, agrega este código (copia y pega):
'Declaración deVariables:
'------------------------
Dim CONS1 As Recordset, CONS2 As Recordset, TextSQL1 As String, TextSQL2 As String
Dim X As Single, i As Single
'Consulta 1: Registros que tienen valores repetidos y con A=0:
'-------------------------------------------------------------
TextSQL1 = "SELECT MIDI2004.I, Count(MIDI2004.I) AS CONTAR, Min(MIDI2004.A) AS MINIMO " _
        & "FROM MIDI2004 " _
        & "GROUP BY MIDI2004.I " _
        & "HAVING (((Count(MIDI2004.I))>=2));"
Set CONS1 = CurrentDb.OpenRecordset(TextSQL1)
'Cuenta los registros de la consulta 1:
'--------------------------------------
CONS1.MoveLast
X = CONS1.RecordCount
CONS1.MoveFirst
'Ciclo For: Elimina registros de la Cons1 restringido a campos de Cons2:
'-----------------------------------------------------------------------
For i = 1 To X
    TextSQL2 = "SELECT MIDI2004.I, MIDI2004.A FROM MIDI2004 " _
        & "WHERE (((MIDI2004.I)=" & CONS1!i & ") " _
        & "AND ((MIDI2004.A)=" & CONS1!MINIMO & "));"
    Set CONS2 = CurrentDb.OpenRecordset(TextSQL2)
    CONS2.Delete
    CONS1.MoveNext
Next i
'Mensaje a mostrar:
MsgBox "Se han eliminado correctamente " & X & " registros.", vbInformation, "ELIMINACION"
'Libera recursos del sistema:
Set CONS1 = Nothing
Set CONS2 = Nothing
Nota1: como no pusiste como se llamaba tu tabla, e llame "MIDI2004", por lo que sustitúyelo con el nombre de la tuya en todo el texto.
Nota2: Recuerda que siempre es mejor prevenir los problemas antes que solucionarlos, por lo que te recomiendo poner una restricción al ingreso.
SL2
POLORed
Hola, la macro no me funcionó da un error 3265.
La tabla es "paciente".
Se requiere seleccionar también el evento así:
evento        tipo_id         num_ide           ajuste
300             CC                11111              0*
300 CC 11111 6
300 CC 22222 0
9103 CC 22222 0
300             CC                33333              0*
300             CC                33333              6
300             CC                44444              0*
300 CC 44444 7
300 CC 55555 0
Se desea eliminar los marcados con *
Gracias.
Midi, más fácil, mandame tu mail y te envío una muestra con lo que necesitas...
SL2
POLORed
Midi2004,
Te envíe a tu correo un archivo .mdb en access 2003.
La tabla tiene los datos que me enviaste y el botón del formulario hace el procedimiento.
Si todo va bien no olvides calificar la pregunta.
SL2
POLORed

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas