Visual Basic - Select y campo Null

Life is soft - evento anual de software empresarial
 
Vista:

Select y campo Null

Publicado por JULIO CESAR (48 intervenciones) el 02/11/2006 21:01:08
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 me devuelven conflicto: que dice asi:

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

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 una cantidad acotada solo al WHERE o en el mejor de los casos una unica coincidencia

ENTONCES NECESITO QUE FUNCIONE ASI:
''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 pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Select y campo Null

Publicado por Natalia Camino (88 intervenciones) el 03/11/2006 08:47:17
si en la consulta le poneis la condicion WHERE nunca os dará un campo nulo, a no ser que txtRotuloClave sea nulo.
la consulta así deberia funcionar:

"Select distinct Rotulo From Legajos_000 Where Rotulo = '" & txtRotuloClave & "''"
si el campo Rotulo es de tipo texto, si fuera numérico:

"Select distinct Rotulo From Legajos_000 Where Rotulo = " & txtRotuloClave

observad que la unica diferencia es que la variable a que hace referencia va entre comillas simples si es texto y si es número, no.
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:Select y campo Null

Publicado por julio (48 intervenciones) el 04/11/2006 05:00:08
Probe la solución sugerida, DEVUELVE EL SIGUIENTE ERROR

error de sintaxis en la cadena en la expresión de consulta 'Rotulo = M1' . (M1 es el valor de la variable leida)
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:Select y campo Null

Publicado por Natalia Camino (88 intervenciones) el 04/11/2006 11:06:07
¿Prodriais poner la consulta que haceis?
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:Select y campo Null

Publicado por julio (48 intervenciones) el 04/11/2006 18:47:25
Asi lo plantee como me lo sugeriste, y me retorna el error descipto

Set rs_Legajos = New ADODB.Recordset
rs_Legajos.Open "Select Rotulo,apellido, nombre From Legajo_000 " & _
" Where Rotulo = '" & txtRotuloClave & "''" _
" Order by rotulo, Apellido, Nombre" _
, cn, _
adOpenKeyset, _
adLockOptimistic, _
adCmdText

Gracias por su tiempo. Agradeceré su ayuda.
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:Select y campo Null

Publicado por Natalia Camino (88 intervenciones) el 04/11/2006 20:16:45
En ese código después del amperdsand (&) veo muchas comillas y antes del subrayado falta un &

& txtRotuloClave & "'" & _

aunque no se lee bien es: doble comilla - comilla simple - doble comilla.
Suerte.
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:Select y campo Null

Publicado por julio (48 intervenciones) el 05/11/2006 01:02:35
Verifique y aplique lo que me sugeriste y el el código aplicado exitaosamente es el siguiente

" Where Rotulo = ' " & txtRotuloClave & " ' " _

FUNCIONA LA CONSULTA. Infinitamente G R A C I A S
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