Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-11-2009
Avatar de Kamael
Kamael Kamael is offline
Miembro
 
Registrado: ago 2007
Posts: 64
Poder: 17
Kamael Va por buen camino
Buscar por rango de fechas en access

Mi problema es que al buscar con este codigo en la tabla access me da el siguiente error :" No coinciden lostipos de datos en la expresion de criterios".

Código:
El Codigo :
Query2.SQL.Text := ('SELECT * FROM Kilometros ');
Query2.sql.add('Where Fech between');
Query2.sql.add(QuotedStr(FormatDateTime('mm/dd/yyyy',Dtpc1.Date)));
Query2.sql.add('and '+QuotedStr(FormatDateTime('mm/dd/yyyy',DtpC2.Date)));

query2.SQL.Add('Order by Fech');
Query2.Open;
Query2.Filter := 'Mat = '+QuotedStr(Cb1.Text);
Query2.Filtered := True;
Como puedo hacerlo ?
En Paradox me funciona perfectamente pero en acces no.
P.D. soy novato en esto
Responder Con Cita
  #2  
Antiguo 24-11-2009
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
En Access las fechas deben de ir entre almohadillas ##
Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 24-11-2009
Avatar de Kamael
Kamael Kamael is offline
Miembro
 
Registrado: ago 2007
Posts: 64
Poder: 17
Kamael Va por buen camino
Tambien las puse pero no funciona.
Gracias por tu respuesta.
Responder Con Cita
  #4  
Antiguo 25-11-2009
gerardus gerardus is offline
Miembro
 
Registrado: dic 2007
Posts: 43
Poder: 0
gerardus Va por buen camino
Siempre que uses fechas en query's, sea cual sea la base de datos, te recomiendo usar parametros.
Casi cada DB tiene su formato de fecha distinto en SQL (Aunque se empiezen a estandarizar hacia ISO: "yyyy-mm-dd").
De esta forma tu codigo sera más facilemente portable entre bases de datos.

Código:
Query2.SQL.Text := ('SELECT * FROM Kilometros ');
Query2.sql.add('Where Fech between :fecha1 and :fecha2');
Query2.parambyname('fecha1').asdatetime : = dtpc1.Date
Query2.parambyname('fecha2').asdatetime : = dtpc2.Date
Saludos,

Gerard.
Responder Con Cita
  #5  
Antiguo 25-11-2009
Avatar de Kamael
Kamael Kamael is offline
Miembro
 
Registrado: ago 2007
Posts: 64
Poder: 17
Kamael Va por buen camino
He probado tu codigo y al compilar me dice :"Undeclared identifier PramByName". Donde me estoy equivocando? .
Un saludo
Responder Con Cita
  #6  
Antiguo 25-11-2009
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Tienes que incluir la unidad DbTables.

Código Delphi [-]
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Grids, DBGrids, StdCtrls, Buttons, DBCtrls, ExtCtrls, DBTables, Db;


Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #7  
Antiguo 26-11-2009
gerardus gerardus is offline
Miembro
 
Registrado: dic 2007
Posts: 43
Poder: 0
gerardus Va por buen camino
Cita:
Empezado por Kamael Ver Mensaje
He probado tu codigo y al compilar me dice :"Undeclared identifier PramByName". Donde me estoy equivocando? .
Tu no te equivocas. Fui yo

Es ParamByName

A ver cuando ponemos un editor de mnesajes con comprobación de sintaxis.

Saludos,

Gerard.
Responder Con Cita
  #8  
Antiguo 26-11-2009
Avatar de Kamael
Kamael Kamael is offline
Miembro
 
Registrado: ago 2007
Posts: 64
Poder: 17
Kamael Va por buen camino
La unidad DBTables ya estaba incluida pero tampoco funciona. El codigo es este :

Código:
Query2.SQL.Text := ('SELECT * FROM Kilometros ');
Query2.sql.add('Where Fech between :Fecha1 and :Fecha2');
Query2.Parameters.ParamByName('fecha1').Value := dtpc1.Date ;
Query2.Parameters.ParamByName('fecha2').Value := dtpc2.Date ;
query2.SQL.Add('Order by Fech');
Query2.Open;
Solo me queda solucionar este problema.
Perdonad mi pesadez.
Responder Con Cita
  #9  
Antiguo 26-11-2009
gerardus gerardus is offline
Miembro
 
Registrado: dic 2007
Posts: 43
Poder: 0
gerardus Va por buen camino
Que es lo que no funciona exactamente? No compila o no filtra? Si hay error, cual es el mensaje?
Responder Con Cita
  #10  
Antiguo 26-11-2009
gerardus gerardus is offline
Miembro
 
Registrado: dic 2007
Posts: 43
Poder: 0
gerardus Va por buen camino
Por cierto, veo que los parametros de un TADOQuery no son TParams "normales" del Delphi, sino que usan solo variantes (que miedo).
Pido disculpas, pensaba que funcionaban como todo el resto.
Podrias probar a poner un valor string en el .value del parametro (ya se que te estoy diciendo lo contrario que te dije al principio )

Código:
Query2.Parameters.ParamByName('fecha1').Value := FormatDateTime('dd/mm/yyyy', dtpc1.Date);
o

Código:
Query2.Parameters.ParamByName('fecha1').Value := DateToStr(dtpc1.Date);
Saludos,

Gerard.
Responder Con Cita
  #11  
Antiguo 26-11-2009
Avatar de Kamael
Kamael Kamael is offline
Miembro
 
Registrado: ago 2007
Posts: 64
Poder: 17
Kamael Va por buen camino
Muchisimas gracias Gerardus. Sin ti no lo abria conseguido. Ahora funciona todo coreectamente.
Un saludo y repito muchas gracias.
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
Rango de fechas chino150 Varios 17 08-02-2008 20:17:39
Consulta Rango de Fechas soloriv SQL 7 23-06-2006 03:02:03
Rango de fechas roberasturias Varios 2 23-05-2005 18:02:35
Consulta de rango de fechas con sql Yanet SQL 2 12-02-2005 02:07:04
Rango de fechas JODELSA Varios 8 22-05-2003 20:45:43


La franja horaria es GMT +2. Ahora son las 21:52:28.


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