Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-12-2010
userdelphi userdelphi is offline
Miembro
NULL
 
Registrado: dic 2010
Posts: 15
Poder: 0
userdelphi Va por buen camino
quiero filtrar una fecha en un dateTimePicker1

quiero filtrar una fecha en un dateTimePicker1
hola,he leido muchos foros aca adentro y no logro encontrar mi error, necesito ayuda, primero, uso BD access el campo "fecha" es de fecha/hora, utilizo AdoQuery en delphi, un dateTimePicker, un dbgrid y para indicar el filtro seria eligiendo desde el dateTimePicker y luego presionar un button.

intente cambiar formato, ya q en mi BD se almacena dd/mm/aaaa y en el dbgrid se ve mm/dd/aaaa, eso me funciono, ya que el valor lo hacia copiar en un edit, tamb intente crear una variable vfecha y darle el valor del dateTimePicker convirtiendolo, pero se me rompe en la condicion q le doy para el sql.
he leido de hacer parametros, eso nunca lo vi en clases, me explicarian como se asigna y si se debe declarar en la seccion VAR???

aca les mando una parte del codigo.... no se asusten ya que lo que he encontrado lo ponia ahi, y comentaba y descomentaba.

si alguien me ayuda a ordenar eso se lo agradezco,
de ser asi, aun denme el fragmento de codigo y si debo declarar algo en la seccion var o donde , gracias

esto es: (hoy un desorden jaja)

Código Delphi [-]
procedure TFormListadoVentas.ButtonfiltrofechaClick(Sender: TObject);
var
  vFecha:String;
begin
 //ShortDateFormat:= 'd/m/yyyy';
  vFecha:=FormatDateTime('dd/mm/yyyy',dateTimePicker1.DateTime);//Componente Month Calendar
//el formato lo puedes cambiar a dd/mm/yyyy o mm/dd/yyyy
editfiltrofecha.Text := vfecha;

formlistadoVentas.ADOQueryFiltro.Active := false;
// Utilizamos quotedString para ponerle comillas simple a la cadena (en el caso que sea de tipo string   )
  FormListadoVentas.AdoQueryFiltro.SQL.Text := 'SELECT * FROM tVentas WHERE Fecha ='+quotedstr(xfecha);
    ParamByName('xFecha').AsDate := DateTimePicker1.Date;


formlistadoVentas.ADOQueryFiltro.Active := true;

FormListadoVentas.dbgridVentas.DataSource := datasourceFiltro;
FormListadoVentas.DBNavigator1.DataSource := datasourceFiltro;
end;

se los agradezco, como veran saque mucho de aca, y aun los comentarios de quien posteo estan , help me, please

Millones de Gracias ,

Última edición por Casimiro Notevi fecha: 07-12-2010 a las 14:15:52. Razón: Poner etiquetas [delphi] ... [/delphi]
Responder Con Cita
  #2  
Antiguo 07-12-2010
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 24
ContraVeneno Va por buen camino
Código Delphi [-]
procedure TFormListadoVentas.ButtonfiltrofechaClick(Sender: TObject);
begin
 
 with formlistadoVentas.ADOQueryFiltro do begin
  If Active then Close;
  SQL.Clear;
  SQL.Add('SELECT Fecha, ID, Nombre, etc'); //no es recomendable usar Select *... es preferible que escribas los campos que necesitas
  SQL.Add('FROM tVentas');
  SQL.Add('WHERE Fecha = :fecha');
  Parameters.ParamByName('Fecha').AsDate := DateTimePicker1.Date;
  Open;
 end; //with

 FormListadoVentas.dbgridVentas.DataSource := datasourceFiltro; // estos no se para que son
 FormListadoVentas.DBNavigator1.DataSource := datasourceFiltro; // ??
end;

eso debería funcionar...
__________________


Última edición por ContraVeneno fecha: 07-12-2010 a las 20:00:38.
Responder Con Cita
  #3  
Antiguo 07-12-2010
userdelphi userdelphi is offline
Miembro
NULL
 
Registrado: dic 2010
Posts: 15
Poder: 0
userdelphi Va por buen camino
Cita:
Empezado por ContraVeneno Ver Mensaje
Código Delphi [-]procedure TFormListadoVentas.ButtonfiltrofechaClick(Sender: TObject); begin with formlistadoVentas.ADOQueryFiltro do begin If Active then Close; SQL.Clear; SQL.Add('SELECT Fecha, ID, Nombre, etc'); //no es recomendable usar Select *... es preferible que escribas los campos que necesitas SQL.Add('FROM tVentas'); SQL.Add('WHERE Fecha = :fecha'); Parameters.ParamByName('Fecha').AsDate := DateTimePicker1.Date; Open; end; //with FormListadoVentas.dbgridVentas.DataSource := datasourceFiltro; // estos no se para que son FormListadoVentas.DBNavigator1.DataSource := datasourceFiltro; // ?? end;


eso debería funcionar...

Amigo ContraVenenno. he copiado tal cual tu codigo y lo pegue en mi unidad en el procedimiento del buttonfiltro que tengo.

me da un error en lo q a parametros se refiere

Error: Undeclared identifier: 'As Date'
señalandome esta linea:
Parameters.ParamByName('Fecha').AsDate := DateTimePicker1.Date;

me ayudarias por favor, te comento, yo jamas vi esto de parameters, no se lo que es, y como se declaran. no se si debo declarar algo mas en la seccion interface, public, o var.

te repito, copie y pegue tu codigo no le agregue ni quite nada.

con respecto a :
FormListadoVentas.dbgridVentas.DataSource := datasourceFiltro; // estos no se para que son
FormListadoVentas.DBNavigator1.DataSource := datasourceFiltro; // ??

yo utilizo el adoqueryfiltro, un datasourcefiltro, y utilizo un dbgrid y dbnavigator, donde este filtro que queremos hacer lo muestre en ese dbgrid, habilitandome los botones del navigator, para navegarlo.


Millones de gracias.
Responder Con Cita
  #4  
Antiguo 07-12-2010
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 24
ContraVeneno Va por buen camino
el error que te muestra es porque no reconoce "AsDate" y no lo reconoce por que no existe.

Aquí es done te tendría que decir que podrías presionar F1 para que consultaras la ayuda... o que buscaras en google... o en Delphi basics... pero tengo que admitir que es más sencillo que te diga:

en lugar de "asDate", ponle "AsDateTime"
y con eso se arregla.

En otras palabras, si realmente quieres entrar al mundo de la programación, te serviría de mucho que empezaras a conocer las formas en las que puedes encontrar la solución a estos problemitas sencillos por tu cuenta. Para todo lo demás, existe ClubDelphi.

Saludos cordiales.
__________________

Responder Con Cita
  #5  
Antiguo 07-12-2010
userdelphi userdelphi is offline
Miembro
NULL
 
Registrado: dic 2010
Posts: 15
Poder: 0
userdelphi Va por buen camino
Cita:
Empezado por ContraVeneno Ver Mensaje
el error que te muestra es porque no reconoce "AsDate" y no lo reconoce por que no existe.

Aquí es done te tendría que decir que podrías presionar F1 para que consultaras la ayuda... o que buscaras en google... o en Delphi basics... pero tengo que admitir que es más sencillo que te diga:

en lugar de "asDate", ponle "AsDateTime"
y con eso se arregla.

En otras palabras, si realmente quieres entrar al mundo de la programación, te serviría de mucho que empezaras a conocer las formas en las que puedes encontrar la solución a estos problemitas sencillos por tu cuenta. Para todo lo demás, existe ClubDelphi.

Saludos cordiales.

----------------------


Muchas Gracias por tu preocupacion y tu ayuda,

te cuento que por razones de tiempo que tengo que presentar este trabajo mañana no he buscado info en goolge, y el F1 lamentablemente en wind 7 no me funciona. es por eso que busque la manera rapida de preguntar por aca antes de buscar y leer varios tutoriales.

te cuento que cambie a AsDateTime, y aun me arroja el mismo error solo que ahora con asdatetime.

de todas formas gracias por tu preocupacion de nuevo.
Luego cuando me libere de tiempo de las demas materias que tamb debo preparar, le meto pilas a leer un poco acerca de parameters, que ni idea tengo como funciona y que hace esta linea: Parameters.ParamByName('Fecha').AsDate := DateTimePicker1.Date;


Saludos. Muchas Gracias.
Responder Con Cita
  #6  
Antiguo 08-12-2010
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 24
ContraVeneno Va por buen camino
No recordaba que con los componentes ADO no puedes usar "AsDateTime", "AsInteger", "AsFloat", etc para los parámetros...


En lugar de "AsDate", debe de ser "Value":

Parameters.ParamByName('Fecha').Value := DateTimePicker1.Date;
__________________

Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Filtrar Ztable por fecha. forgiveness Conexión con bases de datos 4 03-02-2010 16:33:57
Filtrar por dos Fecha???? Zakio14 Firebird e Interbase 6 23-02-2008 03:00:04
como filtrar por fecha anubis Firebird e Interbase 5 14-02-2008 10:52:43
Solo quiero la hora de un campo Fecha/Hra en Qreport suseLinux Impresión 2 12-12-2006 02:37:39
Filtrar fecha al vuelo JorgeBec Varios 1 04-11-2003 19:33:29


La franja horaria es GMT +2. Ahora son las 08:28:34.


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
Copyright 1996-2007 Club Delphi