Access - Consulta SQL

   
Vista:

Consulta SQL

Publicado por Gustavo (20 intervenciones) el 10/07/2009 22:22:56
Tengo un formulario (consul1) el cual tiene un subformulario (Formulario3) que llama a una consulta y al evento de clic en un boton el sgte codigo

Private Sub Comando6_Click()

Dim sql As String
Form_Formulario3.AREA.ControlSource = "AREA"
Form_Formulario3.STATUS.ControlSource = "STATUS"
Form_Formulario3.INICIO.ControlSource = "INICIO"

sql = "SELECT * FROM Consulta1 WHERE AREA Like '*' & [Forms]![consul1]!AREA & '*' AND STATUS Like '*' & [Forms]![consul1]![STATUS] & '*' AND INICIO LIKE #" & [Forms]![consul1]![INICIO] & "#" '*' ORDER BY AREA;"
Form_Formulario3.RecordSource = sql
Formulario3.Requery

El problema es el siguiente: cuando tenía los controles AREA y STATUS si no escribia nada me traía todos los datos, en caso de escribir el AREA me realizaba la consulta por AREA, si llenaba el STATUS me realizaba la consulta por STATUS , si llenaba ambos
me consultaba por los dos controles.

el problema vino cuando agregue el control inicio el cual es de tipo fecha, si no agrego la fecha me genera un error

error 3075 en tiempo de ejecucion

error de sisntaxis en la fecha en la expresión de consulta ´AREA Like '*' & [Forms]![consul1]!AREA & '*' AND STATUS Like '*' & [Forms]![consul1]![STATUS] & '*' AND INICIO LIKE # #´.

Es decir para que no me genere este error obligatoriamente debo darle la fecha .

Lo que necesito es que la consulta se genere segun el control es decir la consulta estaba al comienzo STATUS y/o AREA, ahora debería estar STATUS y/o AREA y/o INICIO

Les agradezco su colaboración estoy muy perdido.
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:Consulta SQL

Publicado por jose (59 intervenciones) el 11/07/2009 21:15:50
las fechas a lo mejor tienes que definirlas con format$("ddmmaaaa", [Forms]![consul1]![INICIO] )


mira la funcion format para fechas. A veces en el vb hay que poner la fecha en la forma americama mmddaaaa

mes dia año


mira a ver si así te funciona .

un saludo
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:Consulta SQL

Publicado por Gustavo (20 intervenciones) el 16/07/2009 15:14:21
Jose muchas gracias pr tu pronta respuesta.

Disculpa la ignorancia pero en que parte inserto esa parte del codigo???
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:Consulta SQL

Publicado por Gustavo (20 intervenciones) el 17/07/2009 16:30:28
Ya agregue el formato de la fecha pero aun persiste el error, creo que no es el formato, por que el error que genera si no me equivoco es por que no le ingreso ningun valor en la fecha.

alguien mas podría colaborme con este inconveniente??
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:Consulta SQL

Publicado por Antonio (83 intervenciones) el 06/08/2009 03:14:39
Hola,

La clausula LIKE solo es válida para cadenas de caracteres.
Cuando construyes la sentencia SQL tienes que verificar si se ha introducido algun valor para la fecha. Solo en caso afirmativo incluyes

AND INICIO = #" & format([forms]![consul1]![Inicio],"mm/dd/yyyy") & "#"

después ya terminas la instruccion con "ORDER BY AREA"

Saludos
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