funcion iif

15/06/2006 - 19:48 por Jose | Informe spam
Porque al ejecutar esta sentencia cuan do el valor es nulo da un error de
que dbnull.value no puede convertirse en string

IIf(lector.Item("codigo") Is DBNull.Value, " ", IIf(lector.Item("codigo") =
"01", "X", " "))

Quiero que si es nulo pues grabe " "



Alguna sugerencia?

Gracias de antemano.

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
15/06/2006 - 21:39 | Informe spam
"Jose" wrote in message
news:
Mostrar la cita
Cuando se ejecuta el IIf, lo mismo que cualquier otra función, primero se
evalúan todos los argumentos, y luego se le pasan a la función para que ésta
los procese. Cuando una de las funciones a evaluar puede dar error
dependiendo de que la condición se cumpla o no, no hay más remedio que
utilizar una sentencia If en lugar de la función IIf.
#2 Jose
15/06/2006 - 21:59 | Informe spam
Aja Alberto pero que hay de malo en mi sentencia. Creo que es lo mas basica
posible. No veo porque da el error

"Alberto Poblacion"
escribió en el mensaje news:
Mostrar la cita
#3 Alberto Poblacion
15/06/2006 - 22:54 | Informe spam
"Jose" wrote in message
news:
Mostrar la cita
Da un error porque haces a la vez dos cosas: Una correcta y otra
incorrecta. Y aunque el resultado de la incorrecta se descarta porque no se
cumple la condición que permite devolverlo, el mero hecho de ejecutar la
sentencia incorrecta ya hace que falle el programa, aunque luego no utilices
dicho resultado incorrecto.

Concretamente, lo que haces mal es lector.Item("Codigo")="01". Cuando
Lector.Item("Codigo") vale DBNull.Value, no es lícito compararlo con el
string "01" y ahi es donde "casca". Tu error está en que piensas que no va
a entrar en esa instrucción porque no lo permite la condición que has puesto
en el primer IIf, pero no es asi como funciona el IIf.
#4 Jose
16/06/2006 - 01:34 | Informe spam
Ok gracias Alberto.
"Alberto Poblacion"
escribió en el mensaje news:
Mostrar la cita
Ads by Google
Search Busqueda sugerida