Visual Basic Foro

Programación => Visual Basic 6 => Mensaje iniciado por: zxs23 en Diciembre 01, 2012, 09:17:07 pm

Título: Error 94 en tiempo de ejecucion - A veces si a veces no
Publicado por: zxs23 en Diciembre 01, 2012, 09:17:07 pm
La verdad no entiendo el porque, antes todo funciona bien y ahora me sale este error. Mi base de datos es un Archivo .mdb 2003 abierto con access2007(quizas tenga algo que ver aunque no creo.)
Código: (VB) [Seleccionar]
Dim rs As Recordset
Set rs = Conex.Execute("SELECT codprov,nomprov,telefono FROM proveedor WHERE codprov='" & txtCodigo & "'")
Text1(0) = rs("nomprov")
Text1(1) = rs("telefono")

El error aparece cuando el campo telefono esta vacio, pero lo raro es que cuando agrego algo en dicho campo logicamente el error desaparece pero... si luego lo dejo vacio nuevamente ya no me da error a pesar de que dicho campo TELEFONO esta vacio.

Que esta sucediendo por que la verdad ya no entiendo nada perdi un par de horas para darme cuenta de esto :-[ y lo unico que quiero saber es PORQUE?
Título: Re:Error 94 en tiempo de ejecucion - A veces si a veces no
Publicado por: YAcosta en Diciembre 01, 2012, 09:50:54 pm
Checa el tipo de dato, quiza por vacio está como Null, lo que no es lo mismo que pongas algo y luego borres

Si fuese asi tendrias que modificar tu codigo a esto:


Código: (VB) [Seleccionar]
Text1(0) = IIF(IsNull(rs("nomprov")), "", rs("nomprov"))
Text1(1) = IIF(IsNull(rs("telefono")), "", rs("telefono"))

En lo personal me gusta mas rs!telefono que rs("telefono") pero eso ya es cuestión de gustos. No conozco un sustento tecnico sobre cual es mejor.
Título: Re:Error 94 en tiempo de ejecucion - A veces si a veces no
Publicado por: k_arlytos en Diciembre 01, 2012, 10:05:42 pm
mucha escritura de codigo, esque eso ocurre cuando lo que intentas jalar de la BD es null

YO LO HAGO DE ESTA FORMA

Text1(0) = rs("nomprov") & ""
Text1(1) = rs("telefono") & ""
 
EL NULL LO CONCATENAS CON UNA CADENA
Título: Re:Error 94 en tiempo de ejecucion - A veces si a veces no
Publicado por: zxs23 en Diciembre 01, 2012, 10:10:12 pm
El tipo de dato es texto-255 y esta en requerido=NO osea que dependiendo del usuario puede estar vacio o no. Exacto cuando esta vacio me salta el error. Bueno karlytos creo que diste con la solucion. Yvan acabo de conocer el IIF(solo conocia el if normal) gracias

La cuestion es EL PORQUE si agrego algo y luego lo borro(Desde el mismo access) el error ya no salta, esto me intriga! :o :o osea si le paso el cuy desde access el vb6 se olvida del error?
Título: Re:Error 94 en tiempo de ejecucion - A veces si a veces no
Publicado por: k_arlytos en Diciembre 01, 2012, 10:15:29 pm
eso pasa igual en .net si mal no recuerdo, cuando esta vacio el campo de la tabla el vb lo toma como null
tambien en sql podrias usar esto

select isnull(nombre_campo,"q quieres q muestre") from tabla

o tambien como dijo yvan o lo que yo comente


Título: Re:Error 94 en tiempo de ejecucion - A veces si a veces no
Publicado por: k_arlytos en Diciembre 01, 2012, 10:19:17 pm
ponle un valor como default ps
Título: Re:Error 94 en tiempo de ejecucion - A veces si a veces no
Publicado por: zxs23 en Diciembre 02, 2012, 02:29:53 am
Por ahora esta todo bien, gracias por el soporte, saludos