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

error 94 en tiempo de ejecucion

Estas en el tema de error 94 en tiempo de ejecucion en el foro de Visual Basic clásico en Foros del Web. Hola estoy desarrollando un programa en visual basic 6.0 y pues ya estaba trabajando pero derepente me mando es error 94 al correr una seccion ...
  #1 (permalink)  
Antiguo 05/12/2008, 11:57
 
Fecha de Ingreso: octubre-2008
Mensajes: 36
Antigüedad: 15 años, 6 meses
Puntos: 0
error 94 en tiempo de ejecucion

Hola estoy desarrollando un programa en visual basic 6.0 y pues ya estaba trabajando pero derepente me mando es error 94 al correr una seccion

Este es el codigo:

El error me lo da en la varialble en negritas y subrrayada

Código:
Dim cn As New ADODB.Connection
Private WithEvents rs As ADODB.Recordset
Dim fechacz As Variant
Dim horacz As Variant
Dim totalc As String
Dim totalfolios As Integer
Dim usuario As String

Private Sub CmdAceptar_Click()

Set rs = New ADODB.Recordset

cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=d:\respaldo\docs\base de datos\venta1.mdb"

rs.Source = "Usuarios"
rs.Source = "Usuderechos"
rs.CursorType = adOpenKeyset
rs.LockType = adLockOptimistic

rs.Open "select * from usuarios, usuderechos where usuderechos.Id_Usuario = usuarios.Id_Usuario And usuarios.Id_Usuario = '" & TxtUsuario.Text & "' and usuarios.Contraseña = '" & TxtClave.Text & "' and usuderechos.Id_Usuario = '" & TxtUsuario.Text & "'", cn

If rs.BOF = False And rs.EOF = False Then
    
    If rs.Fields("Corte_Z") = 1 Then
    rs.Close
    Set rs = New ADODB.Recordset

    rs.Source = "Venta"
    rs.CursorType = adOpenKeyset
    rs.LockType = adLockOptimistic

    fechacz = Date
    horacz = Time
    
        rs.Open "select CorteZ from Venta where CorteZ = '" & "S" & "'", cn
    
        If rs.EOF = False And rs.BOF = False Then
        MsgBox "El corte ya fue relizado"
        Unload Me
        cn.Close
        Else
        rs.Close
        
        rs.Open "select Sum(Total) As totalcz, Count(Folio) As folioscz from Venta where Fecha_Salida = #" & fechacz & "# and Status = '" & "CO" & "'", cn

        totalc = rs!totalcz
        totalc = FormatCurrency(totalc, 2)
        totalfolios = rs!folioscz
    
        rs.Close
        
        rs.Open "select * from Empresa, Venta", cn
        
        Printer.FontName = "Calibri"
        Printer.FontSize = 9
        Printer.Print rs.Fields("Nombre")
        Printer.Print rs.Fields("Calle")
        Printer.Print "COL." & " " & rs.Fields("Colonia") & " " & "C.P." & " " & rs.Fields("Codigo_Postal")
        Printer.Print rs.Fields("Poblacion") & " " & rs.Fields("Estado")
        Printer.Print "TEL.:" & " " & rs.Fields("Telefono") & " " & "R.F.C.:" & " " & rs.Fields("RFC")
        Printer.Line (Printer.CurrentX, Printer.CurrentY)-(Printer.ScaleWidth, Printer.CurrentY)
        Printer.Print " "
        Printer.FontSize = 12
        Printer.Print "TOTAL:" & "      " & totalc
        Printer.Print " "
        Printer.Print "TOTAL FOLIOS:" & " " & totalfolios
        Printer.Print " "
        Printer.FontSize = 9
        Printer.Print "FECHA" & " " & fechacz & "   " & "HORA:" & " " & horacz
        'Printer.EndDoc
        rs.Close
        
        rs.Open "select folio from venta where status = '" & "PE" & "'", cn
        rs.MoveFirst
        Printer.FontName = "Calibri"
        Printer.FontSize = 12
        Printer.Print "PENDIENTES:"
        Do While rs.EOF = False
        Printer.Print "                     " & rs.Fields("Folio")
        rs.MoveNext
        Loop
        Printer.Print " "
        Printer.Print " "
        Printer.Print " "
        Printer.Print " "
        Printer.Print " "
        Printer.EndDoc
        rs.Close
        
        rs.Open "update venta set cortez = '" & "S" & "' where status = '" & "CO" & "'", cn
        
        rs.Open "select * from CorteZ", cn

        rs.MoveLast

        usuario = frmingreso.TxtUsuario.Text
        foliocz = rs.Fields("Folio_Cortez") + 1

        rs.AddNew
        rs.Fields("Folio_Cortez") = foliocz
        rs.Fields("Total_CorteZ") = totalc
        rs.Fields("Id_Usuario") = usuario
        rs.Fields("Fecha_Corte") = fechacz
        rs.Fields("Cantidad_Folios") = totalfolios
        rs.Fields("Hora_Corte") = horacz
        rs.Update

        rs.Close
        cn.Close
        Unload Me
        End If
    Else
    MsgBox "No tiene derechos para imprimr el corte"
    rs.Close
    cn.Close
    TxtUsuario.SetFocus
    End If
Else
MsgBox "Usuario y/o Clave equivocado"
cn.Close
End If

End Sub
Es asunto es que me manda "Uso no valido de Null" y si tengo datos en la base de datos y la fecha es la correcta.

Lo curioso es que ya habia hecho varias pruebas y funcionaba correctamente, ojala me puedan ayudar.

Muchas garcias de antemano
  #2 (permalink)  
Antiguo 05/12/2008, 12:08
 
Fecha de Ingreso: octubre-2008
Mensajes: 127
Antigüedad: 15 años, 6 meses
Puntos: 5
Respuesta: error 94 en tiempo de ejecucion

Hola,

has probado de declarar la variable totalc como variant en lugar de declararla como string??

Saludos.
  #3 (permalink)  
Antiguo 05/12/2008, 12:15
 
Fecha de Ingreso: octubre-2008
Mensajes: 36
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: error 94 en tiempo de ejecucion

Ya lo intente pero no me imprime la suma ni la cuenta de los folios que hago en el recordset, ahora por que habra dejado de funcionar?
  #4 (permalink)  
Antiguo 05/12/2008, 12:44
 
Fecha de Ingreso: octubre-2008
Mensajes: 36
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: error 94 en tiempo de ejecucion

A ver ya hice la prueba de mandar imprimir la pura suma del rs. pero me manda nulo como si no hiciera la suma, pero la base de datos si tiene informacion, pero por mas que busco no encuentro el problema.

Ojala alguien lo encuentre y me ayude a resolverlo
  #5 (permalink)  
Antiguo 05/12/2008, 16:14
 
Fecha de Ingreso: octubre-2008
Mensajes: 127
Antigüedad: 15 años, 6 meses
Puntos: 5
Respuesta: error 94 en tiempo de ejecucion

Estaría bien que hicieras llegar un script con el modelo que estás utilizando en el mdb y con alguna entrada de ejemplo que hayas comprobado en el access que devuelve resultados. De esa forma podríamos echarte una manita...

Saludos.
PD: Un consejo, en tu código pon, en la primera línea, la sentencia Option Explicit para que te "obligue" a declarar todas las variables. Actualmente la variable foliocz no está definida.
  #6 (permalink)  
Antiguo 06/12/2008, 11:38
 
Fecha de Ingreso: octubre-2008
Mensajes: 36
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: error 94 en tiempo de ejecucion

Hola mira he seguido haciendo pruebas y ya ves que filtro la suma por fecha y status, bueno si le quito el filtro de la fecha funciona correctamente, el problema es que lo tengo que filtrar forsosamente por fecha, este codigo es de un punto venta para un estacionamiento y en espesifico es del corte de fin de turno por eso necesito filtrarlo por la fecha para que solo me sume los registros con status CO de la fecha que se saca el corte.

Gracias por el tip del option explicit
  #7 (permalink)  
Antiguo 06/12/2008, 11:52
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 2 meses
Puntos: 37
Respuesta: error 94 en tiempo de ejecucion

Cita:
Iniciado por kikevar Ver Mensaje
Hola mira he seguido haciendo pruebas y ya ves que filtro la suma por fecha y status, bueno si le quito el filtro de la fecha funciona correctamente, el problema es que lo tengo que filtrar forsosamente por fecha, este codigo es de un punto venta para un estacionamiento y en espesifico es del corte de fin de turno por eso necesito filtrarlo por la fecha para que solo me sume los registros con status CO de la fecha que se saca el corte.

Gracias por el tip del option explicit
Hola, las fechas de las bases de datos dan muchos quebraderos de cabeza.
Supongo (aunque no lo indicas en ninguna parte) que la BD es formato Access, intenta formateando la fecha en la consulta:

... where Fecha_Salida = #" & Format(fechacz, "mm/dd/yyyy") & "# and...

Y no estaría de más que posteriormente hicieras una comprobación de si la consulta devuelve algún registro, además de declarar 'totalc' como integer.

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 04:34.