Duda SQL - base de datos

Iniciado por karmany, 3 Octubre 2009, 20:04 PM

0 Miembros y 1 Visitante están viendo este tema.

karmany

VB6
Tengo una base de datos con una sóla tabla: "Tabla1" y con un sólo campo: "Campo1" lo hago lo más sencillo para entender mi problema... (Control de datos Data)

1º) Quiero buscar todos los registros vacios de "Campo1" y perfectamente sale de este modo:
Código (vb) [Seleccionar]
Data1.RecordSource = "SELECT * FROM Tabla1 WHERE Campo1 = NULL"

2º)Ahora pongo el criterio de que quiero que aparezcan todos los registros que comienzen por "A". También sale perfectamente de este modo:
Código (vb) [Seleccionar]
Data1.RecordSource = "SELECT * FROM Tabla1 WHERE Campo1 LIKE '" & criterio & "'"

3º) Ahora viene mi DUDA... Quiero que cuando el criterio sea = "" me aparezcan todos los registros, es decir, TODOS incluídos los registros nulos. Sin embargo cuando el criterio sea <> "" pues que no aparezcan los registros nulos.
Una solución sencilla pero que no quiero hacer es la siguiente:
Código (vb) [Seleccionar]
if criterio = "" then
    "SELECT * FROM Tabla1 WHERE (Campo1 LIKE '" & criterio & "') OR (Campo1 = NULL)"
Else
    "SELECT * FROM Tabla1 WHERE Campo1 LIKE '" & criterio & "'"
End If


Sin embargo, no lo quiero hacer así porque mi consulta es realmente bastante más amplia y tendría que poner muchísimas condiciones...

Mi pregunta es... ¿Se podría poner la condición criterio="" dentro de la consulta SQL?
Pongo un ejemplo, se podría intentar hacer algo así: porque no lo consigo y sería para mi perfecto:
Código (vb) [Seleccionar]
"SELECT * FROM Tabla1 WHERE (Campo1 LIKE '" & criterio & "') OR ((Campo1 = NULL) AND ('criterio' = ""))"

A alguien se le ocurre la forma de hacerlo???? existe alguna forma de ver TODOS los registros, incluídos los nulos de otra forma diferente...
Cualquier sugerencia que se os ocurra por favor comentármela..

Un saludo y gracias.
karmany


cobein

Si haces algo asi?

"SELECT * FROM Tabla1 WHERE (Campo1 LIKE '" & criterio & "')"  & iif(  criterio = "", "OR (Campo1 = NULL)",vbnullstring)
http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.

karmany

cobein MUCHÍSIMAS GRACIAS...
Me has ahorrado muchísimo trabajo inútil. Te lo agradezco enormemente.

Un saludo