Programación General > Visual Basic 6.0 e inferiores

 Cuando Ejecuto Se Cuelga Vb

(1/1)

lavi:
Planteo una función, con bastantes bloques if, recorre dos colecciones y carga datos a la bd y a otra colección; no se, al ejecutar el programa y llamarla se cuelga visual, pero no me doy cuenta porq? No tira error, les pongo el cod. de la función, no sé si servirá de algo pero por lo menos quizas alguna idea de que puede ser,  ;), MUCHAS GRACIAS...

[/CODE]
Public Function RECIBOSXCATEGORIA(idcat As Integer, numeroinicial As Long, dia As Integer, mes As Integer, año As Integer) As Collection
Dim COLFAMILIAR As Collection
Dim COLTITULAR As Collection
Set COLFAMILIAR = clpAfiliado2.CargarTodos
Set COLTITULAR = clpAfiliado1.CargarTodos
Dim i, j, X As Long
For i = 1 To COLFAMILIAR.Count
    For j = 1 To COLTITULAR.Count
    If idcat = COLTITULAR.Item(j).IdCategoria And idcat = COLFAMILIAR.Item(i).IdCategoria Then
        X = 0
        If COLFAMILIAR.Item(i).ID = COLTITULAR.Item(j).ID Then
        Set clreciboCat1 = New cReciboCat1
            X = 1
            If X = 1 Then
                X = 2
                clreciboCat1.NombreFamiliar2 = COLFAMILIAR.Item(i).nombre
                End If
            ElseIf X = 2 Then
                X = 3
                clreciboCat1.NombreFamiliar2 = COLFAMILIAR.Item(i).nombre
                End If
            ElseIf X = 3 Then
                X = 4
                clreciboCat1.NombreFamiliar3 = COLFAMILIAR.Item(i).nombre
                End If
            If X = 4 Then
                X = 5
                clreciboCat1.NombreFamiliar4 = COLFAMILIAR.Item(i).nombre
                End If
            If X = 5 Then
                X = 6
                clreciboCat1.NombreFamiliar5 = COLFAMILIAR.Item(i).nombre
                End If
            If X = 6 Then
                X = 7
                clreciboCat1.NombreFamiliar6 = COLFAMILIAR.Item(i).nombre
                End If
            If X = 7 Then
                X = 8
                clreciboCat1.NombreFamiliar7 = COLFAMILIAR.Item(i).nombre
                End If
            If X = 8 Then
                X = 9
                clreciboCat1.NombreFamiliar8 = COLFAMILIAR.Item(i).nombre
                End If
            If X = 9 Then
                X = 10
                clreciboCat1.NombreFamiliar10 = COLFAMILIAR.Item(i).nombre
                End If
            If X = 10 Then
                X = 11
                clreciboCat1.NombreFamiliar10 = COLFAMILIAR.Item(i).nombre
                End If
            If X = 11 Then
                X = 11
                clreciboCat1.NombreFamiliar11 = COLFAMILIAR.Item(i).nombre
        Set CLCAT = CLDCAT.Cargarxid(COLFAMILIAR.Item(i).IdCategoria)
        clreciboCat1.ID = CLDCAT.NuevoID
        clreciboCat1.numeroinicial = numeroinicial
        clreciboCat1.Numero = cldrecibocat.Nuevonumero
        clreciboCat1.nombre = COLTITULAR.Item(j).nombre
        clreciboCat1.Valor = CLCAT.Valor
        clreciboCat1.Iva = CLCAT.Iva
        clreciboCat1.Total = CLCAT.Iva + CLCAT.Valor
        clreciboCat1.Categoria = CLCAT.nombre
        clreciboCat1.Direccion = COLTITULAR.Item(j).Direccion
        clreciboCat1.Telefono = COLTITULAR.Item(j).Telefono
        clreciboCat1.mes = mes
        clreciboCat1.año = año
        clreciboCat1.dia = dia
        clreciboCat1.IdCategoria = CLCAT.ID
        RECIBOSXCATEGORIA.Add clreciboCat1
        cldrecibocat.Alta (clreciboCat1)
        End If
        Set clrecibocat = Nothing
     Next
Next
End Function
[CODE]

cpmario:
Difícil para mi saber que hace esta función, sin tener el resto del código. Pero te doy algunas ideas.
Primero, debes de formatear el código para que sea fácil de revisar por ejemplo:


--- Código: Text ---Public Function RECIBOSXCATEGORIA(idcat As Integer, numeroinicial As Long, dia As Integer, mes As Integer, año As Integer) As Collection    Dim COLFAMILIAR As Collection    Dim COLTITULAR As Collection    Set COLFAMILIAR = clpAfiliado2.CargarTodos    Set COLTITULAR = clpAfiliado1.CargarTodos    Dim i, j, X As Long    For i = 1 To COLFAMILIAR.Count        For j = 1 To COLTITULAR.Count            If idcat = COLTITULAR.Item(j).IdCategoria And idcat = COLFAMILIAR.Item(i).IdCategoria Then                X = 0                If COLFAMILIAR.Item(i).ID = COLTITULAR.Item(j).ID Then                    Set clreciboCat1 = New cReciboCat1                    X = 1                    If X = 1 Then                        X = 2                        clreciboCat1.NombreFamiliar2 = COLFAMILIAR.Item(i).nombre                    End If                ElseIf X = 2 Then                    X = 3                    clreciboCat1.NombreFamiliar2 = COLFAMILIAR.Item(i).nombre                End If            ElseIf X = 3 Then                X = 4                clreciboCat1.NombreFamiliar3 = COLFAMILIAR.Item(i).nombre            End If            If X = 4 Then                X = 5                clreciboCat1.NombreFamiliar4 = COLFAMILIAR.Item(i).nombre            End If            If X = 5 Then                X = 6                clreciboCat1.NombreFamiliar5 = COLFAMILIAR.Item(i).nombre            End If            If X = 6 Then                X = 7                clreciboCat1.NombreFamiliar6 = COLFAMILIAR.Item(i).nombre            End If            If X = 7 Then                X = 8                clreciboCat1.NombreFamiliar7 = COLFAMILIAR.Item(i).nombre            End If            If X = 8 Then                X = 9                clreciboCat1.NombreFamiliar8 = COLFAMILIAR.Item(i).nombre            End If            If X = 9 Then                X = 10                clreciboCat1.NombreFamiliar10 = COLFAMILIAR.Item(i).nombre            End If            If X = 10 Then                X = 11                clreciboCat1.NombreFamiliar10 = COLFAMILIAR.Item(i).nombre            End If            If X = 11 Then                X = 11                clreciboCat1.NombreFamiliar11 = COLFAMILIAR.Item(i).nombre                Set CLCAT = CLDCAT.Cargarxid(COLFAMILIAR.Item(i).IdCategoria)                clreciboCat1.ID = CLDCAT.NuevoID                clreciboCat1.numeroinicial = numeroinicial                clreciboCat1.Numero = cldrecibocat.Nuevonumero                clreciboCat1.nombre = COLTITULAR.Item(j).nombre                clreciboCat1.Valor = CLCAT.Valor                clreciboCat1.Iva = CLCAT.Iva                clreciboCat1.Total = CLCAT.Iva + CLCAT.Valor                clreciboCat1.Categoria = CLCAT.nombre                clreciboCat1.Direccion = COLTITULAR.Item(j).Direccion                clreciboCat1.Telefono = COLTITULAR.Item(j).Telefono                clreciboCat1.mes = mes                clreciboCat1.año = año                clreciboCat1.dia = dia                clreciboCat1.IdCategoria = CLCAT.ID                RECIBOSXCATEGORIA.Add clreciboCat1                cldrecibocat.Alta (clreciboCat1)            End If            Set clrecibocat = Nothing        Next    NextEnd Function Segundo, revisa paso a paso el código o coloca interrupciones y ejecuta el código con F5 hasta que encuentres el problema.
 :comp:

Navegación

[0] Índice de Mensajes

Ir a la versión completa