Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado 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.)
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?
-
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:
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.
-
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
-
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?
-
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
-
ponle un valor como default ps
-
Por ahora esta todo bien, gracias por el soporte, saludos