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
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
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
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
"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