Hola a todos/as
Necesitaría que me echarais un cable puesto que de VB6 no lo he tocado nunca a nivel profesional y tengo que hacer una cosa que no se cómo hacerla/plantearla.
El caso es que tengo un procedimiento que va registro a registro comparando un array y un recordset y marcando aquellos registros que son diferentes. El código es el siguiente:
Private Sub encontrarRepetidos()
Dim i As Integer
Dim sSql As String
Dim bEsDiferente As Boolean
sSql = "select * from [BD-F] order by fen asc, iden asc"
If Not AbrirRCS(rcsAux, sSql, [BD-F], RCS_CAMBIOS) Then
Call CerrarBDT([BD-F])
lbErrorCargar = True
Exit Sub
End If
For i = 1 To nRecep
rcsAux.MoveFirst
rcsAux.Find "iden='" + lsRecep(i, BuscarColumna(grdRecep, "IDEN")) + "'"
If rcsAux.EOF Then
MsgBox "El elemento no existe"
Exit Sub
Else
bEsDiferente = False
Select Case True
Case lsRecep(nRecep, cte_ENRI) <> Format(rcsAux("ENRI").Value, "#0.000")
bEsDiferente = True
Case lsRecep(nRecep, cte_U1) <> Trim(str(rcsAux("U1").Value))
bEsDiferente = True
Case lsRecep(nRecep, cte_U2) <> Trim(str(rcsAux("U2").Value))
bEsDiferente = True
Case lsRecep(nRecep, cte_UN) <> Trim(str(rcsAux("UN").Value))
bEsDiferente = True
Case lsRecep(nRecep, cte_U2351) <> Trim(str(rcsAux("U2351").Value))
bEsDiferente = True
Case lsRecep(nRecep, cte_U2352) <> Trim(str(rcsAux("U2352").Value))
bEsDiferente = True
Case lsRecep(nRecep, cte_U235N) <> Trim(str(rcsAux("U235N").Value))
bEsDiferente = True
End Select
If IsNull(rcsAux("C1").Value) And lsRecep(nRecep, cte_C1) = "" Then
bEsDiferente = False
ElseIf (IsNull(rcsAux("C1").Value) And lsRecep(nRecep, cte_C1) <> "" Or Not IsNull(rcsAux("C1").Value) And lsRecep(nRecep, cte_C1) <> "")
Then
bEsDiferente = True
End If
If IsNull(rcsAux("C2").Value) And lsRecep(nRecep, cte_C2) = "" Then
bEsDiferente = False
ElseIf (IsNull(rcsAux("C2").Value) And lsRecep(nRecep, cte_C2) <> "" Or Not IsNull(rcsAux("c2").Value) And lsRecep(nRecep, cte_C2) <> "")
Then
bEsDiferente = True
End If
If IsNull(rcsAux("CN").Value) And lsRecep(nRecep, cte_CN) = "" Then
bEsDiferente = False
ElseIf (IsNull(rcsAux("CN").Value) And lsRecep(nRecep, cte_CN) <> "" Or Not IsNull(rcsAux("CN").Value) And lsRecep(nRecep, cte_CN) <> "")
Then
bEsDiferente = True
End If
If IsNull(rcsAux("CAT1").Value) And lsRecep(nRecep, cte_CAT1) = "" Then
bEsDiferente = False
ElseIf (IsNull(rcsAux("CAT1").Value) And lsRecep(nRecep, cte_CAT1) <> "" Or Not IsNull(rcsAux("CAT1").Value) And lsRecep(nRecep, cte_CAT1) <> "")
Then
bEsDiferente = True
End If
If Not IsNull(rcsAux("CAT2").Value) And lsRecep(nRecep, cte_CAT2) = "" Then
bEsDiferente = False
ElseIf (IsNull(rcsAux("CAT2").Value) And lsRecep(nRecep, cte_CAT2) <> "" Or Not IsNull(rcsAux("CAT2").Value) And lsRecep(nRecep, cte_CAT2) <> "")
Then
bEsDiferente = True
End If
If Not IsNull(rcsAux("CATN").Value) And lsRecep(nRecep, cte_CATN) = "" Then
bEsDiferente = False
ElseIf (IsNull(rcsAux("CATN").Value) And lsRecep(nRecep, cte_CATN) <> "" Or Not IsNull(rcsAux("CATN").Value) And lsRecep(nRecep, cte_CATN) <> "") Then
bEsDiferente = True
End If
'/RSCS09
End If
Next
End Sub
Ahora, lo que necesito hacer es pintar en un grid los registros diferentes y eliminar aquellos registros que sean iguales.
Si teneis alguna idea de cómo podría hacerlo, os lo agradecería.
Saludos y gracias.