Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Pocos parametros? Al borde...

Estas en el tema de Pocos parametros? Al borde... en el foro de Visual Basic clásico en Foros del Web. Buenas, pues acá con un problema realmente tonto. Pocos parámetros, se esperaba 1.. Yo sé que se debe al error en un campo con la ...
  #1 (permalink)  
Antiguo 30/01/2012, 11:45
 
Fecha de Ingreso: agosto-2011
Ubicación: Xalapa
Mensajes: 10
Antigüedad: 12 años, 8 meses
Puntos: 0
Pocos parametros? Al borde...

Buenas, pues acá con un problema realmente tonto.

Pocos parámetros, se esperaba 1..

Yo sé que se debe al error en un campo con la base de datos. Pero lo que no entiendo es como siquiera es posible con este Access. Llevo mil horas intentando descifrarlo. He movido todo, checado que los campos del select estén en la base de datos y que correspondan al tipo que se está pidiendo, lo he botado como 3 veces pero nomás no se deja. Acá dejo los códigos. Lo curioso, esque en la tabla hermana Actualiza_DRT002 si lo hace sin problema pero en la Actualiza_DRT002S siempre siempre me tira el mismo error.

Alguna solución?

Código:
Private Sub Actualiza_DRT002()
    Dim DBS As Database
    Dim strSql As String

    Set DBS = OpenDatabase("D:\CARMEN\JACOBO\FAVWMJACOB.mdb")
    strSql = "SELECT SNC, SNOMI, SNOM, REFERENCIA, SCDEU, SPP, " _
        & "SFECH, A_PARTIR, SFAP, SPAP, SALDOACT, COMP " _
        & "FROM DRT002 ORDER BY SFECH, SNCH"
    
    Set qdf = DBS.OpenRecordset(strSql)
    If (qdf.EOF) Then
        MsgBox "No hay elementos para esta página del Panel de control"
    Else
        While (Not (qdf.EOF))
            If IsNull(qdf!A_PARTIR) Then
                'MsgBox "El empleado " & qdf!SNOM & " no tienen fecha A_PARTIR en la tabla DRT002"
            Else
                If (qdf!SALDOACT <> 0) And (qdf!COMP = "I") Then
                    Select Case (qdf!SFAP)
                        'Pagos mensuales
                        Case 1
                            If (qdf!A_PARTIR >= FECHAINI) _
                               And (qdf!A_PARTIR <= FECFINAUX) _
                               And (qdf!SPAP <> 0) Then
                           
                                saldo = qdf!SALDOACT - qdf!SPP
                                FORMAPAG = qdf!SPAP - 1
                                Inserta_AUXILIARVWM
                                Guarda_DRT002
                            End If
                        
                        'Pago único
                        Case 2
                            If (qdf!A_PARTIR >= FECINIAUX) And (qdf!A_PARTIR <= FECFINAUX) Then
                                saldo = qdf!SALDOACT - qdf!SPP
                            Else
                                saldo = qdf!SALDOACT
                            End If
                            Inserta_AUXILIARVWM
                        
                            If (qdf!A_PARTIR >= FECHAINI) _
                               And (qdf!A_PARTIR <= FECFINAUX) _
                               And (qdf!SPAP <> 0) Then
                           
                                saldo = qdf!SALDOACT - qdf!SPP
                                FORMAPAG = qdf!SPAP - 1
                                Guarda_DRT002
                            End If
                    End Select
                End If
            End If
            qdf.MoveNext
        Wend
    End If
    qdf.Close
End Sub



Private Sub Actualiza_DRT002S()
    Dim DBS As Database
    Dim strSql As String

    Set DBS = OpenDatabase("D:\CARMEN\JACOBO\FAVWMJACOB.mdb")
    strSql = "SELECT SNC, SNOMI, SNOM, REFERENCIA, SCDEU, SPP, " _
        & "SFECH, A_PARTIR, SFAP, SPAP, SALDOACT, COMP " _
        & "FROM DRT002S ORDER BY SFECH, SNCH"
    
    Set qdf = DBS.OpenRecordset(strSql)
    If (qdf.EOF) Then
        MsgBox "No hay elementos para esta página del Panel de control"
    Else
        While (Not (qdf.EOF))
            If IsNull(qdf!A_PARTIR) Then
                'MsgBox "El empleado " & qdf!SNOM & " no tienen fecha A_PARTIR en la tabla DRT002"
            Else
                If (qdf!SALDOACT <> 0) And (qdf!COMP = "I") Then
                    Select Case (qdf!SFAP)
                        'Pagos mensuales
                        Case 1
                            If (qdf!A_PARTIR >= FECHAINI) _
                               And (qdf!A_PARTIR <= FECFINAUX) _
                               And (qdf!SPAP <> 0) Then
                           
                                saldo = qdf!SALDOACT - qdf!SPP
                                FORMAPAG = qdf!SPAP - 1
                                Inserta_AUXILIARVWM
                                Guarda_DRT002
                            End If
                        
                        'Pago único
                        Case 2
                            If (qdf!A_PARTIR >= FECINIAUX) And (qdf!A_PARTIR <= FECFINAUX) Then
                                saldo = qdf!SALDOACT - qdf!SPP
                            Else
                                saldo = qdf!SALDOACT
                            End If
                            Inserta_AUXILIARVWM
                        
                            If (qdf!A_PARTIR >= FECHAINI) _
                               And (qdf!A_PARTIR <= FECFINAUX) _
                               And (qdf!SPAP <> 0) Then
                           
                                saldo = qdf!SALDOACT - qdf!SPP
                                FORMAPAG = qdf!SPAP - 1
                                Guarda_DRT002
                            End If
                    End Select
                End If
            End If
            qdf.MoveNext
        Wend
    End If
    qdf.Close
End Sub
  #2 (permalink)  
Antiguo 31/01/2012, 00:12
Avatar de lokoman  
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 14 años, 7 meses
Puntos: 47
Respuesta: Pocos parametros? Al borde...

Hola, el codigo de la sub DTR002S no está, por que no tomas el valor del select y lo pegas en access?

Ponte sole la sentencia sql y pulsa F9, ejecuta el programa y cuando se detenga, pulsa F8, abre la ventana de inmediato (ctrl+i), coloca un signo de interrogacion (?) seguido por la variable que tiene la sentencia sql y dale ENTER.

Te presentará el query, copialo y pegalo en access y verifica el resultado, corrigelo el el mismo access (si tiene algun error) y luego traducelo a vb6 y ajusta la sentencia sql.
  #3 (permalink)  
Antiguo 31/01/2012, 10:05
 
Fecha de Ingreso: agosto-2011
Ubicación: Xalapa
Mensajes: 10
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Pocos parametros? Al borde...

Bendito seas, hombre.

Es la forma más fácil de debugear en VBA. Pruebalo primero en Access.

GEnio, Genio, Genio.


Gracias!

Etiquetas: access, parametros
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:12.