Visual Basic - campo Null en un Select

Life is soft - evento anual de software empresarial
 
Vista:

campo Null en un Select

Publicado por Julio (48 intervenciones) el 31/10/2006 03:29:53
Tengo una Tabla a la cual necesito consultar para recuperar todos los registros iguales a un Rotulo Unico. Resulta que el campo ROTULO ya viene con valores nulos, y en blanco. Esta situacion no me permite obtener la consulta.

Para probar complete todos los nulos y en blanco y la consulta asi funciona.

Pero lamentablemente no depende de mi que ese campo siempre se llene con un valor.

Entonces necesito saber si ¿existe alguna forma para obtener la consulta a pesar de los valores nulos en el campo?

Estuve viendo en mi blibliografia de consulta que usando la funcion ISNULL se puede superar los mensajes de error pero no se como utilizarla (Lamentablemente en el libro no se desarrolla ningun ejemplo práctico)

Set rs_Legajos = New ADODB.Recordset
'rs_Aspi.Open "Select * From Legajos_000 " & _
"Where Rotulo =" & txtRotuloClave _
, cn, _
adOpenDynamic, _
adLockOptimistic, _
adCmdText

Desde ya agradezco vuestra ayuda.
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:campo Null en un Select

Publicado por Mauro (79 intervenciones) el 31/10/2006 15:01:07
Proba asi:

IIF(ISNULL(!Campo),"",!Campo)

La funcion IIF es como la funcion SI de Excel, La primer parte es el criterio, la segunda es el valor verdadero y la tercera el valor falso.

IFF(criterio, valor verdadero, valor falso)

En tu caso, como coloque el ejemplo anterior, comprobamos si tu campo es NULL con; ISNULL(!Campo), si es Null me devuelve verdadero, que seria "" (Vacio), en caso de que no sea verdadero es falso, eso quiere decir que el campo contiene algun caracter entonces en el valor falso coloco el contenido del campo.

Espero te sirva.

Saludos Mauro
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:campo Null en un Select

Publicado por Julio (48 intervenciones) el 01/11/2006 23:09:13
Es lo que dice la ayuda de Visual Basic 6 (al consultar SELECT)

Si un valor de comparación es nulo, el resultado es desconocido. Los valores nulos no coinciden con ningún valor e incluyen otras instancias de valores nulos. Por ejemplo, si busca un nombre que comienza con la letra "M" o superior (nombre >= 'M') y algunas de las filas no contienen ningún valor, estas filas no aparecen, sin tener en cuenta el operador de comparación que utiliza.

Mi consulta:

En la práctica los valores nulos en la clausula WHERE devuelven conflicto: que dice asi:

"No se han especificado valores para
algunos de los parametros requeridos"

El código sugerido por Mauro, teoricamente funciona, pero en la práctica NO.

El código siguiente funciona correctamente ....

''rs_Legajos.Open "Select distinct Rotulo From Legajos_000 " & _
''" Where Rotulo Like '%" & txtRotuloClave & "%'" _
'', cn, _
''adOpenKeyset, _
''adLockOptimistic, _
''adCmdText

.... pero asi me devuelve una lluvia de coincidencias, y me gustaria que la consulta devuelva menor cantidad de coincidencias o en el mejor de los casos una unica coincidencia

La cuestion que el codigo asi planteado NO FUNCIONA
''rs_Legajos.Open "Select Distinct Iff(IsNull(Rotulo,0,Rotulo) From Legajos_000 " & _
''" Where Rotulo = txtRotuloClave _
'', cn, _
''adOpenKeyset, _
''adLockOptimistic, _
''adCmdText

¿Alguien sabe el secreto para sortear los valores nulos en el campo?
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:campo Null en un Select

Publicado por Mauro (79 intervenciones) el 04/11/2006 13:06:07
La idea de mi sugerencia, no era colocar el iif(isnull(campo),"",campo) dentro del codigo sino colocarlo al momento que lo muestre por pantalla, vos haces la consulta que debas hacer y luego al momento de mostrarlo en un control por ejemplo en un mshflexgrid colocar el iif con el isnull, ejemplo

despues de la sentencia SQL

mshflexgrid1.textmatrix (i,2) = iif(isnull(campo),"",campo)

Esa era mi idea.

Saludos y seguimos en contacto.

Mauro
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:campo Null en un Select

Publicado por julio (48 intervenciones) el 04/11/2006 19:06:57
.... es la blbliografia que encontre Bases de Datos con Visual Basic SAMS de Printice Hall Capitulo consultas pagina 79 esta propuesto tal cual el codigo..... Lamentablemente en la práctica no funciona

Si alguién puede responder a mi consulta.... desde ya agradecido
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:campo Null en un Select

Publicado por Mauro (79 intervenciones) el 06/11/2006 16:23:59
Hola Julio, me podrias enviar la linea que te tira el error, y que error te tira?

Saludos Mauro
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:campo Null en un Select

Publicado por julio (48 intervenciones) el 12/11/2006 03:22:48
Ok ya lo solucione con ayuda del foro, este es el codigo que funciona en forma correcta

rs_Legajos.Open "Select distinct rotulo From Legajos_000 " & _
" Where rotulo = '" & txtRotuloClave & "'" _
, cn, _
adOpenKeyset, _
adLockOptimistic, _
adCmdText

el secreto esta en las comillas simples y dobles.... el problema venia porque el campo es tipo texto

Gracias y ahi esta el codigo aplicado en la vida real.... "sin ninguna trampita"...... Espero sea de utilidad
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