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)
-   -   consulta a campo datetime de access usando adoquery (https://www.clubdelphi.com/foros/showthread.php?t=49111)

JESUSNET 12-10-2007 23:50:14

consulta a campo datetime de access usando adoquery
 
hola estoy tratando de hacer una busqueda con fecha en una tabla access mediante un adoquery y no lo consigo esto es lo que tengo:

tengo una tabla en access que contiene los resultados de examenes de laboratorio lo que quiero es hacer consultas para un reporte mediante la fecha con 2 datetimepicker le indico fecha_desde y fecha_hasta el campo de la tabla se llama fecha_emision y es datetime .-digo datetime porque asi es que lo guarda access.- queria solo guardarlo date pero no pude, asi que me lo guarda datetime pero no importa tambien me sirve, donde se complica es en la busqueda porque si le digo que me de las ordenes de la fecha 12/10/2007 no me las da (pienso que no haya ninguno por el motivo de que contiene tambien horas asi que no encuentra coincidencia exacta) hice una prueba, fui a la tabla access le quite las horas y los segundos y funciona asi que lo que necesito es hacer un consulta sobre este campo pero que solo tome la fecha y me ignore las horas para que me pueda arrojar los registros..

¿como hago esa consulta de seleccion desde delphi usando adoquery sobre ese campo datetime de tal manera que yo obtenga los registros de una fecha dada? gracias por su ayuda estaria agradecido ya me falta poco por terminar el proyecto y hasta hora me han ayudado bastante

enecumene 13-10-2007 00:31:05

Hola Jesusnet, que tal? mira puedes poner el codigo que utilizas para hacer la consulta asi puedo ayudarte a encontrar la solucion.

Saludos.

JESUSNET 13-10-2007 01:00:51

he usado todo tipo de codigo hasta con formatdatetime y nada pero aqui esta uno de los que he usado:

datamodule2.ADOQueryrepresultados.Close;
datamodule2.ADOQueryrepresultados.SQL.Clear;
datamodule2.ADOQueryrepresultados.SQL.Add('Select * from resultados_emitidos,pacientes,convenios');
datamodule2.ADOQueryrepresultados.SQL.Add('where resultados_emitidos.cedula_paciente=pacientes.cedula');
datamodule2.ADOQueryrepresultados.SQL.Add('and resultados_emitidos.codigo_convenio = convenios.codigo');
datamodule2.ADOQueryrepresultados.SQL.Add('and resultados_emitidos.fecha_emision=:fecha_emision');
parametro2:=now;
datamodule2.ADOQueryrepresultados.Parameters[0].Value := ''+parametro2+'';
datamodule2.ADOQueryrepresultados.Open;

enecumene 13-10-2007 01:08:58

A ver, A ver, intenta este codigo:

Código Delphi [-]
 datamodule2.ADOQueryrepresultados.Close;
   datamodule2.ADOQueryrepresultados.SQL.Clear;
   datamodule2.ADOQueryrepresultados.SQL.Add('Select * from resultados_emitidos,pacientes,convenios');
   datamodule2.ADOQueryrepresultados.SQL.Add('where resultados_emitidos.cedula_paciente=pacientes.cedula');
   datamodule2.ADOQueryrepresultados.SQL.Add('and resultados_emitidos.codigo_convenio = convenios.codigo');
   datamodule2.ADOQueryrepresultados.SQL.Add('and resultados_emitidos.fecha_emision=:fecha_emision');
   datamodule2.ADOQuery1.Parameters.ParamByName('fecha_emision').value := DateTimePicker1.Date;
   datamodule2.ADOQueryrepresultados.Open;

jooooseph, trata de usar las etiquetas delphi, para que se vean mejor, prueba el codigo y luego me comentas.

Saludos.

JESUSNET 13-10-2007 01:36:28

lo acabo de intantar pero solo funciona si la fecha es mayor o igual si mle digo buscame los de la fecha 12/12/2000( que coloco en datetimepicker1) no me aparece nada pero sí existen registros con esa fecha gracias por responder ¿otra idea?

enecumene 13-10-2007 02:08:34

Hola, lo que quieres es una consulta entre fecha? si es asi intenta lo siguiente:

Código Delphi [-]
datamodule2.ADOQueryrepresultados.Close;
   datamodule2.ADOQueryrepresultados.SQL.Clear;
   datamodule2.ADOQueryrepresultados.SQL.Add('Select * from resultados_emitidos,pacientes,convenios');
   datamodule2.ADOQueryrepresultados.SQL.Add('where resultados_emitidos.cedula_paciente=pacientes.cedula');
   datamodule2.ADOQueryrepresultados.SQL.Add('and resultados_emitidos.codigo_convenio = convenios.codigo');
   datamodule2.ADOQueryrepresultados.SQL.Add('and fecha1 >= :fecha_emision and fecha2<= :fecha2');
   datamodule2.ADOQuery1.Parameters.ParamByName('fecha1').value := DateTimePicker1.Date;
   datamodule2.ADOQuery1.Parameters.ParamByName('fecha2').value := DateTimePicker2.Date;
   datamodule2.ADOQueryrepresultados.Open;

intenta tambien este:

Código Delphi [-]
datamodule2.ADOQueryrepresultados.Close;
   datamodule2.ADOQueryrepresultados.SQL.Clear;
   datamodule2.ADOQueryrepresultados.SQL.Add('Select * from resultados_emitidos,pacientes,convenios');
   datamodule2.ADOQueryrepresultados.SQL.Add('where resultados_emitidos.cedula_paciente=pacientes.cedula');
   datamodule2.ADOQueryrepresultados.SQL.Add('and resultados_emitidos.codigo_convenio = convenios.codigo');
   datamodule2.ADOQueryrepresultados.SQL.Add('and fecha1 >= "'+Fecha1.text+'" and fecha2<= "'+fecha2.text+'" ');
   datamodule2.ADOQueryrepresultados.Open;


y ahora? luego me comentas.

Saludos.


La franja horaria es GMT +2. Ahora son las 21:49:02.

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