Ver Mensaje Individual
  #1  
Antiguo 22-10-2016
jose001 jose001 is offline
Miembro
NULL
 
Registrado: jul 2016
Posts: 13
Reputación: 0
jose001 Va por buen camino
Filtrar busquedas por fecha

Hola buenas noches estoy intentado hacer una busqueda filtrada por 2 fechas (desde y hasta).Mi aplicacion esta realizada con delphi 2010 y query de zeos
Resulta que tengo un formulario con 2 dbgrid maestro-esclavo que tendrian relacionado uno el query de venta y el otro detalle de venta. En dicho formulario tengo 2 DateTimerPocker, y un boton.
en el query de ventas tengo la siguiente consulta
Código SQL [-]
select * from venta inner join clientes(venta.idcliente=clientes.idcliente) 
where fechaventa BETWEEN :desde AND :hasta

y en el de detalle de venta lo siguiente
Código SQL [-]
select * from detalle_venta inner join producto(detalle_venta.idventa=prodcuto.idproducto)
luego en las propiedades MasterSource,MasterFields,LinkedFields del query detalle hago la relacion al query de venta para establecer la relación maestro detalle.
bien hasta aqui todo perfecto me muestra datos en los dbgrid segun la venta me muestra sus detalles luego procedi a colocar un boton en el escribi el siguiente codigo y es aqui donde comienza el problema


Código Delphi [-]
qVentas.Close;
qVentas.SQL.clear;
qVentas.SQL.ADD('select * from venta where fechaventa BETWEEN :desde AND :hasta');
qVentas.ParanByName('desde').AsDate:= fecha_desde.date;
qVentas.ParanByName('hasta').AsDate:= fecha_hasta.date;
qVentas.Open;

tambien eh probado realizando el siguiente codigo pero con este tuve mas problema que con el anterior
Código Delphi [-]
qVentas.Close;
qVentas.SQL.clear;
qVentas.SQL.ADD('select * from venta');
qVentas.SQL.ADD('where fechaventa BETWEEN ' + FormatDateTime('yyyy/mm/dd',fecha_desde.Date) +
  ' AND '+FormatDateTime('yyyy/mm/dd',fecha_hasta) ;
////...

probando cualquier codigo al realizar la busqueda me pasa los siguiente problemas
1) los dbgrid quedan vacio y no me muestra datos( filtro la busqueda en fechas que se que contienen datos)
2) Aveces me muestra 1 solo dato pero no de la fecha que seleccione y al querer cambiar la fecha tira error de consulta(esto utilizando el primer codigo)
3) al probar el primer codigo nuevamente me larga el siguiente error de syntax de "select * from venta where fechaventa BETWEEN '2016-10-21 AND 2016-10-2 at line 1"

la verdad que no se si estoy escribiendo mal la consulta o filtrando mal la busqueda alguna ayuda? Muchas gracias desde ya

Última edición por ecfisa fecha: 22-10-2016 a las 08:10:15. Razón: ajustar código para mejor visualización
Responder Con Cita