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)
-   -   filtrar por fechas y por un campo mas (https://www.clubdelphi.com/foros/showthread.php?t=8651)

mainau 29-03-2004 15:05:24

filtrar por fechas y por un campo mas
 
Hola de nuevo y a ver si soy capaz de explicarme :
tengo una tabla , dbf, que quiero filtrar por fechas y por un campo (indexado) mas el formato es :
codempl n 4 0
fectrab d 8 0
liquido n 7 2
anticipo n 7 2

el filtro que he hecho es el siguiente :
Table1.Filter := 'codempl='+ quotedstr(dbedit1.text) and 'Fectrab >= ' + QuotedStr(FormatDateTime('mm/dd/yyyy', datetimepicker1.date)) +
' and Fectrab <= ' + QuotedStr(FormatDateTime('mm/dd/yyyy', datetimepicker2.Date));
y el error que me da es que el operador no aplicable this operand tipe ????:mad:

es que no se puede , lo dudo pero como soy cortito a lo mejor hago algo mal
si podeis iluminarme os lo agradeceria de mientras me comeré el coco un poquito más , GRACIAS MIL:)

marcoszorrilla 29-03-2004 15:53:18

Para filtros cambia el formato de fecha, el que pones te irá bien con SQL

Código:

Table1.Filter := 'codempl='+ quotedstr(dbedit1.text) and 'Fectrab >= '
  + QuotedStr(FormatDateTime('dd/mm/yyyy', datetimepicker1.date)) +
 
 ' and Fectrab <= ' + QuotedStr(FormatDateTime('dd/mm/yyyy',
  datetimepicker2.Date));

Un Saludo.

Nuria 29-03-2004 16:21:14

Hola!


Código:

Table1.Filter := 'codempl='+ quotedstr(dbedit1.text) + ' and Fectrab  between  ' +
QuotedStr(FormatDateTime('dd/mm/yyyy', datetimepicker1.date)) + ' and  ' +
QuotedStr(FormatDateTime('dd/mm/yyyy', datetimepicker2.Date));

Es lo mismo que te ha dicho marcos, pero me gusta más utilizar between, cuestión de gustos... :rolleyes:

Tenías un 'and' fuera de las comillas, no sé si te habías dado cuenta.

Saludos!

marcoszorrilla 29-03-2004 17:06:13

Bueno en realidad yo solamente he cambiado el formato de la fecha.

Un Saludo.

mainau 29-03-2004 20:20:02

acabo de leerlo y voy a probar ahora mismo
 
en rato os digo algo

mainau 29-03-2004 20:24:30

pues no me , os explico el error que meda vale ?
 
Filter expression incorectly terminated ???????:(
lo he copiado literalmente voy repasarlo a ver si he hecho algo mal , de todas maneras muchismas gracias por vuestro tiempo y atención.
Asi si que se puede aprender.:D

mainau 29-03-2004 20:41:43

Funciona ,,,,bien Ok Fantantisco
 
NO SABEIS LO CONTENTO QUE ME HE PUESTO LLEVO 3 DIAS LIADO CON ESTO.
Si ahora va de lujo , no sabeis lo que me alivia , necesito aprender mucho de esto para ganarme la vida y esto no se aprende en los libros y tengo varios y por cierto carisimos.:) :D :D :D :D ¡¡¡
GRACIAS A LOS DOS .

JamesBond_Mx 31-03-2004 17:46:44

A ver, si yo quiero filtrar por dos fechas exactas por ejemplo entre el 1 de enero del 2004 y el 31 de enero del 2004, el filtro sería:

Table1.Fliter:='Fecha_Prog<=01/01/2004' and 'Fecha_Prog>=31/01/2004';

Estoy bien???, si es así por que no funciona??? me manda Varios errores,

Si pongo solo esto:
Table1.Fliter:='Fecha_Prog<=01/01/2004'

Me dice que operadores aritmeticos no estan permitidos y si lo pongo con las dos opciones me dice el operador no es aplicable a este tipo de operando, supongo que habla del and...

Que opinan.

vic_ia 31-03-2004 21:14:09

Hola Sr. Bond....

Ciertamente como has escrito la sentencia del filtro no funciona, el problema con la escritura de tu sentencia es que generas una cadena simple, mientras que (si te fijas bien en los mensajes previos de Nuria y Marcoszorrilla) ellos han utilizado la función QuotedStr para que la fecha que utilizan como filtro este enmarcada por doble comilla simple (''). Espero que esta observacion te ayude.

JamesBond_Mx 01-04-2004 16:23:16

Si que me sirvió ya solucioné el problema, muchas gracias.


La franja horaria es GMT +2. Ahora son las 09:18:32.

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