Visual Basic - Problema con un IF

Life is soft - evento anual de software empresarial
 
Vista:

Problema con un IF

Publicado por andrey (11 intervenciones) el 16/12/2003 17:19:59
Estoy haciendo en Vb una aplicacion y quiero comparar el valor de una consulta, los valores los tomo con el Rst pero cuando es null no entra al ciclo.. les pongo el ejemplo..

Cursores rstPromedio, "select round(AVG(convert(real(9,1),Preg9)),2) from TPreguntas where ISNUMERIC(Preg10) = 1 and area = '" & Trim(N_area) & "'", cnn
If Trim(rstPromedio.Fields(i)) = Null Then
MsgBox "NO HAY ENCUESTAS REGISTRADAS", vbInformation, "Mensaje"
Exit Sub
Else
MSChart1.Data = rstPromedio.Fields(i)
End If
Loop While rstAreas.Fields(i) <> Null
El resultado de la consulta es NULL osea que aqui (If Trim(rstPromedio.Fields(i)) = Null Then)debe de entrar al ciclo pero se salta no se a que se deba... alguien que me heche la mano se lo agradecere bastante... no entra por ningun motivo.. aunque los valores sean los que pide... que sera??
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con un IF

Publicado por Fabian (501 intervenciones) el 16/12/2003 17:35:40
Haber prueba con esto:
Loop While not rstAreas.Fields(i) isNull
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

No funciona...

Publicado por andrey (11 intervenciones) el 16/12/2003 19:01:41
No funciono mi querido Fabian.... como que no detecta la condicion del if y menos la del while..
ya habia probado con eso...
if not rstAreas.Fields(i) isNull nada de nada... que otras opciones hay
porque no entrara.. sera por algo del Rst.??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con un IF

Publicado por Fabian (501 intervenciones) el 16/12/2003 19:12:55
Si has copiado tal como esta en tu codificacion creo que esta mal
Trim(rstPromedio.Fields(i)) = Null
Si solo tienes un campo deberia ser (0):
Trim(rstPromedio.Fields(0)) = Null
Por otro lado si ese campo es un valor numerico a mi parecer no deberias compararlo con un null si no con 0
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con un IF

Publicado por andrey (11 intervenciones) el 16/12/2003 19:27:46
Hay te va...
Cursores rstAreas, "Select area from TAreas", cnn
i = 0
Do While rstAreas.EOF <> True
N_area = rstAreas.Fields(i)
Cursores rstPromedio, "select round(AVG(convert(real(9,1),Preg9)),2) from TPreguntas where ISNUMERIC(Preg10) = 1 and preg2 = '" & Trim(N_area) & "'", cnn
If Trim(rstPromedio.Fields(i)) = Null Then
'MSChart1.Data = rstPromedio.Fields(i)
MsgBox "Entre"
End If
i = i + 1
Loop
Set rstPromedio = Nothing
(i) = es un contador del recordset que me posiciona en el registro siguiente, el campo es varchar porque tengo numeros y texto este solo me saca el promedio de los registros que tengan numero (SQL) pero al momento de preguntarle que si el valor(promedio) que saco es null (porque se puede dar el caso si es que no hay registros o los que hay tengan texto) es cuando no hace caso.. porque siendo null (If Trim(rstPromedio.Fields(i)) = Null Then) se brinca hasta el end if y no es el caso.. tiene que entrar.. que pasa????
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con un IF

Publicado por kinoscar (233 intervenciones) el 16/12/2003 19:34:09
prueba elimimando el trim, el trim elimina los espacios vacios de una expresion, pero como no tienes nada pienso que a lo mejor eso afecta tu efecucion, ahora que tipo de resultado te devuelve el campo que estas evaluando, me refiero a si string o numerico
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Checatelo tu mismo

Publicado por andrey (11 intervenciones) el 16/12/2003 19:39:51
Checate esto es lo que tengo y este error genera...
If Combo1.Text = "Mantenimiento" Then
Call grafica_normal
Cursores rstAreas, "Select area from TAreas", cnn
i = 0
Do While rstAreas.EOF <> True
N_area = rstAreas.Fields(i)
Cursores rstPromedio, "select round(AVG(convert(real(9,1),Preg9)),2) from TPreguntas where ISNUMERIC(Preg10) = 1 and preg2 = '" & Trim(N_area) & "'", cnn
If not rstPromedio.Fields(i) IsNull Then
'MSChart1.Data = rstPromedio.Fields(i)
MsgBox "Entre"
End If
i = i + 1
Loop
Set rstPromedio = Nothing

ERROR. NI SIQUEIRA ME DEJA CORRERLO...
Compile error:
Expectec: Then or GoTo
ADEMAS QUE CUANDO LO DEBUGEO ME DA LOS VALORES Y VEO QUE TENGO NULL EN ESE RECORDSET
rstPromedio.Fields(i)=Null
Que es lo que pasa!???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Checatelo tu mismo

Publicado por Fabian (501 intervenciones) el 16/12/2003 19:45:22
El error esta en el (i) puesto que tu con un contador estas aumentando el campo rstPromedio.Fields(i)=Null obviamente cuando ya no es cero por que solo tienes un campo en tu consulta te bota error pon esto:
rstPromedio.Fields(0)=Null
y en ves de i=i+1 por rstPromedio.MoveNext
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar