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

como soluciono error 424 en tiempo de ejecucion

Estas en el tema de como soluciono error 424 en tiempo de ejecucion en el foro de Visual Basic clásico en Foros del Web. Hola a todos, resulta que cree una aplicacion que me trabajaba perfectamente hasta hace poco, que me mostro el error: Error '424' en tiempo de ...
  #1 (permalink)  
Antiguo 03/09/2008, 16:07
 
Fecha de Ingreso: abril-2008
Mensajes: 40
Antigüedad: 16 años
Puntos: 0
como soluciono error 424 en tiempo de ejecucion

Hola a todos, resulta que cree una aplicacion que me trabajaba perfectamente hasta hace poco, que me mostro el error:

Error '424' en tiempo de ejcucion:
se requiere un Objeto

lo curioso es que el Software funcionaba bien y insertaba bien esta funcion, y mas curioso es porque funciona bien en las demas funciones, inserta datos, los actualiza y elimina.


aqui les agrego el codigo a ver si me pueden hacer el favor de ayudarme a solucionar este error.


Private Sub Form_Load()
Conexion
titulo_grillas
llena_grilla
End Sub

Private Sub insertar_operador()
Dim consulta As String
Dim Sentencia_usu As String
Set registro = New ADODB.Recordset
If (Text5.Text = "") Or (Text4.Text = "") Or (Text2.Text = "") Or (Text1.Text = "") Or (Text3.Text = "") Or (Text7.Text = "") Or (Text6.Text = "") Then
X = MsgBox("Se recomienda insertar datos validos en los campos",
vbOKOnly + vbCritical, "Error")
Else
Set registro = New ADODB.Recordset
consulta = "select * from operadores where CODIGO_OPERADOR ='" & _
Text5.Text & "' "
Set registro = conex.Execute(consulta)
If registro.EOF Then
Sentencia_usu = "insert into operadores (" & _
"CODIGO_OPERADOR,NOMBRE_OPERADOR,APELLIDO_OPERADOR ,
cargo,salario,DIRECCION,TELEFONO,codigo_tipo_usuar io)" & _
" values ('" & _
Text5.Text & "', '" & _
Text4.Text & "', '" & _
Text3.Text & "', '" & _
Text2.Text & "', " & _
Text1.Text & ", '" & _
Text6.Text & "', '" & _
Text7.Text & "', '" & _
Text9.Text & "', " & _
Text8.Text & ", '" & _
Text10.Text & "')"
conex.Execute (Sentencia_usu)
MsgBox "Operador registrado"
limpiar
Else
MsgBox " Este Operador ya existe!. Verifique "
limpiar
End If
End If
End Sub


y anexo el modulo de conexion tambien:


Public conex As ADODB.Connection
Public tabla As ADODB.Recordset

Public Sub Conexion()
' Realiza la conexion con la base de datos
On Error GoTo msgError
Set conex = New ADODB.Connection
Set tabla = New ADODB.Recordset
conex.CursorLocation = adUseClient
conex.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=storres;UID=root ;PWD=123;"
conex.Open
Exit Sub
msgError:
MsgBox Err.Number & " - " & Err.Description, vbCritical, "Error"
End Sub


agradeceria me podrian ayudar.

Public Sub cerrar()
conex.Close
End Sub
  #2 (permalink)  
Antiguo 03/09/2008, 17:53
Avatar de Txoco  
Fecha de Ingreso: junio-2008
Ubicación: Perdido en tierras Quijotescas
Mensajes: 189
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: como soluciono error 424 en tiempo de ejecucion

Hola!

¿En qué línea se produce el error?

Si no lo sabes a ciencia cierta, en el manejador de errores de la función, a continuación de "MsgBox Err.Number..." teclea lo siguiente:

Código:
    Debug.Assert False
    Resume
De esta manera, cuando se produzca el error, la ejecución se detendrá en la línea "Debug.Assert etc", y podrás ejecutar el programa instrucción por instrucción con F8. Al pasar por encima de "Resume", volverás a la línea que te ha causado el error.

¡Ten cuidado! Si no eliminas esas dos líneas en tu programa final, cualquier error no controlado (todos, tal y como está definida la función) hará que la aplicación entre en un bucle infinito. Utiliza los "Resume" a secas sólo para depurar o si sabes muy bien lo que estás haciendo
__________________
wile sona li mute e sona
  #3 (permalink)  
Antiguo 04/09/2008, 10:59
 
Fecha de Ingreso: abril-2008
Mensajes: 40
Antigüedad: 16 años
Puntos: 0
Respuesta: como soluciono error 424 en tiempo de ejecucion

el error me lo muestra seleccionando todo el query:

Sentencia_usu = "insert into operadores (" & _
"CODIGO_OPERADOR,NOMBRE_OPERADOR,APELLIDO_OPERADOR ,
cargo,salario,DIRECCION,TELEFONO,codigo_tipo_usuar io)" & _
" values ('" & _
Text5.Text & "', '" & _
Text4.Text & "', '" & _
Text3.Text & "', '" & _
Text2.Text & "', " & _
Text1.Text & ", '" & _
Text6.Text & "', '" & _
Text7.Text & "', '" & _
Text9.Text & "', " & _
Text8.Text & ", '" & _
Text10.Text & "')"

el query lo pobre y funciona perfectamente, supongo que el error se produce cuando se va ejecutar esta linea de codigo, que el que le sigue al query:

conex.Execute (Sentencia_usu)


vuelvo e insisto porque no me sale ese error en las otras funciones donde inserto info en la BD, solo me sale aqui y aqui en ese mismo form puedo actualizar informacion.

porfa ayudenme a solucionar ese problema
  #4 (permalink)  
Antiguo 04/09/2008, 13:50
 
Fecha de Ingreso: enero-2007
Ubicación: Tingo María - Perú
Mensajes: 399
Antigüedad: 17 años, 3 meses
Puntos: 13
Respuesta: como soluciono error 424 en tiempo de ejecucion

Cita:
Iniciado por clavijo83 Ver Mensaje
Error '424' en tiempo de ejcucion:
se requiere un Objeto
estas seguro que todas las cajas de texto (del 1 al 10) existen???

y que "conex" exista y este creado correctamente
__________________
Vivir para ser buenos y ser buenos para servir mejor.
  #5 (permalink)  
Antiguo 05/09/2008, 08:42
Avatar de Txoco  
Fecha de Ingreso: junio-2008
Ubicación: Perdido en tierras Quijotescas
Mensajes: 189
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: como soluciono error 424 en tiempo de ejecucion

Si has copiado el código directamente desde el editor de VB, has dejado un espacio en la definición de nombres, en "codigo_tipo_usuar io".

Además, comprueba antes de invocar Execute que el objeto está abierto y es válido:

Código:
If conex Is Nothing then
    Call MsgBox("El objeto no está inicializado")
    Exit sub (o function)
ElseIf conex.status = adStateClosed then
    Call MsgBox("El objeto está cerrado")
    Exit sub (o function, también)
End If
Call MsgBox("Tutto bene")
Estas comprobaciones llevan su tiempo, te sugiero que las coloques en otra parte del programa, o que las quites para el ejecutable final, una vez que hayas comprobado que todo funciona bien.

Si te aparece el mensaje "Tutto bene" y te sigue dando error, tienes que decirnos si la sentencia la has probado directamente en la misma base de datos contra la que está trabajando el programa en VB. Aunque es lo suficientemente sencilla como para que no falle en ningún standard, siempre puede haber matices.

Además, ahora que lo pienso, asegúrate de que ninguna de las textboxes contienen caracteres como las comillas simples. En el caso de que text5 contenga por ejemplo el valor O'Brian, el número de comillas delimitadoras de campos sería impar y tendrías ahí tu problema. Te recomiendo que en estos casos utilices las comillas dobles para concatenar:

Código:
Text5.Text & """, """ & _
etc
y que además, hagas un Instr/Replace para cada campo antes de componer la sentencia final, para poder asegurarte de que no haya más caracteres "molestos"
__________________
wile sona li mute e sona
  #6 (permalink)  
Antiguo 11/09/2008, 09:22
 
Fecha de Ingreso: abril-2008
Mensajes: 40
Antigüedad: 16 años
Puntos: 0
Respuesta: como soluciono error 424 en tiempo de ejecucion

gracias por la ayuda a veces uno no ve los errores tan faciles que son por creer que uno no se puede equivocar tan estupidamente como me estaba pasando. jajajaja

por ahorrar tiempo hice un copia y pega y se me olvido borrar los texbox de mas y como despues de que lo modifique no habia vuelto a usar esta parte no me di cuenta.

ese error era porque los texbox 8 al 10 no existian en ese form.
gracias de todas fromas por la ayuda y por la molestia.
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 01:30.