none
Eliminar registros iguales entre recordset y array RRS feed

  • Pregunta

  • 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.

    lunes, 18 de noviembre de 2013 12:50