Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Consultas por fecha en access (https://www.clubdelphi.com/foros/showthread.php?t=11516)

Mashabak 16-06-2004 13:03:40

Consultas por fecha en access
 
Hola, este es mi primer mensaje en el foro, aunque intentare ser claro en la explicacion.
Lo primero es decir que he repasado los posts con problemas similares al mio en el foro y con las soluciones planteadas no he conseguido resolver mi problema.
Mi caso es el siguiente: Tengo un base de datos access a cuyos datos accedo mediante TQuery y TDataSource. Todo me funciona correctamente excepto las busquedas por fecha.
El caso concreto es el siguiente: en cierto formulario tengo una funcion para realizar busquedas de facturas por fecha, la cual muestra un pequeño TDBGrid con las fechas de todas las facturas. El caso es que yo quiero que, cuando se seleccione una de esas fechas, la consulta solamente muestre las facturas que tienen esa fecha. El campo fecha de la tabla de facturas es de tipo Fecha corta.
Para realizar la consulta uso el siguiente codigo:
Código:


facturas.Queryfacturas.Active:=false;
facturas.queryfacturas.SQL.Clear;
facturas.queryfacturas.SQL.Add('Select * from facturas_venta where facturas_venta.fecha=' +
vartostr(grid.Fields[0].Value));
facturas.queryfacturas.Active:=true;
facturas.queryclientefactura.Active:=false;
facturas.queryclientefactura.SQl.Clear;
facturas.queryclientefactura.SQL.Add('Select * from clientes where clientes.numero=' +
facturas.dbedit10.edittext);
facturas.queryclientefactura.Active:=true;

En este codigo, grid es el TDBGrid que contiene el listado de fechas, queryfacturas es el Tquery donde quiero que aparezcan las facturas de esa fecha y queryclientefactura es una consulta para relacionar la factura con los datos del cliente.
Pues bien, realizando esa funcion, sintacticamente no me da ningun problema, pero no devuelve ningun registro, cuando realmente si lo hay.

He probado a entecomillar la fecha, usar # para la consulta, usar funciones de formato de fecha, etc etc y no consigo que me funcione.
Sin embargo, esa misma consulta sustituyendo el parametro por una fecha real entre # si funciona dentro de la base de datos access, pero si uso las # dentro de delphi, me salta el error "Invalid use of keyword. Token facturas_venta.fecha="

Si a alguien se le ocurre donde puede estar el fallo estaria muy agradecido.

Un saludo.

fjcg02 16-06-2004 14:30:15

Te paso un ejemplo de una query que tengo por ahi.
La única diferencia es que uso ADOquery's.
Atento al formato de la fecha, que es mm/dd/yy, por lo que tenfrás qeu hacer un formatdate('mm/dd/yy', fecha).

Código:

SELECT *FROM Pedidos
WHERE Pedidos.Estado='Entregado'
and Pedidos.Fecha >= #01/01/04# and Pedidos.Fecha<= #12/31/04#
ORDER BY
NumeroPed

Espero que te sirva de ayuda.

Un saludo

Mashabak 16-06-2004 19:33:17

Pues si, con el ADOquery si funciona tu metodo, sin embargo con un TQuery normal no he conseguido que funcione. De todos modos ya he conseguido arreglarlo usando un ADOQuery, aunque me gustaria saber si existe alguna forma de hacerlo con el TQuery.

Gracias por la ayuda, campeon, y un saludo.


La franja horaria es GMT +2. Ahora son las 12:18:00.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi