FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
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; En Paradox me funciona perfectamente pero en acces no. P.D. soy novato en esto |
#2
|
||||
|
||||
En Access las fechas deben de ir entre almohadillas ##
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#3
|
||||
|
||||
Tambien las puse pero no funciona.
Gracias por tu respuesta. |
#4
|
|||
|
|||
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 Gerard. |
#5
|
||||
|
||||
He probado tu codigo y al compilar me dice :"Undeclared identifier PramByName". Donde me estoy equivocando? .
Un saludo |
#6
|
||||
|
||||
Tienes que incluir la unidad DbTables.
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#7
|
|||
|
|||
Cita:
Es ParamByName A ver cuando ponemos un editor de mnesajes con comprobación de sintaxis. Saludos, Gerard. |
#8
|
||||
|
||||
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; Perdonad mi pesadez. |
#9
|
|||
|
|||
Que es lo que no funciona exactamente? No compila o no filtra? Si hay error, cual es el mensaje?
|
#10
|
|||
|
|||
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); Código:
Query2.Parameters.ParamByName('fecha1').Value := DateToStr(dtpc1.Date); Gerard. |
#11
|
||||
|
||||
Muchisimas gracias Gerardus. Sin ti no lo abria conseguido. Ahora funciona todo coreectamente.
Un saludo y repito muchas gracias. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Rango de fechas | chino150 | Varios | 17 | 08-02-2008 21:17:39 |
Consulta Rango de Fechas | soloriv | SQL | 7 | 23-06-2006 04:02:03 |
Rango de fechas | roberasturias | Varios | 2 | 23-05-2005 19:02:35 |
Consulta de rango de fechas con sql | Yanet | SQL | 2 | 12-02-2005 03:07:04 |
Rango de fechas | JODELSA | Varios | 8 | 22-05-2003 21:45:43 |
|