PDA

Ver la Versión Completa : Filtro con paréntesis


gerly
14-09-2003, 01:49:56
He estado tratando de filtrar los datos de una adoquery. Tengo que contar la cantidad de trabajadores a los que se les dió de alta antes de un día especifico y todavía no se les ha dado de baja o se le dio de baja un día posterior al día indicado. Y esto tengo que repetirlo para todos los días de un mes.
Tengo una variable fecha:string; donde está, en cada paso del ciclo, la fecha por la que tengo que filtrar, llevada a string.
El filtro sería más o menos:

adoquery1.filter:='fechaA < ' + fecha + ' and ( fechaB = Null or fechaB > ' + fecha + ' )';

Pero no funciona. Si lo pongo en el where sí funciona pero se demora un siglo porque tengo que cerrar y abrir la tabla cada vez.

Lo curioso es que el paréntesis en cualquier otra posición sí funciona, y sin paréntesis también. Concretamente, si lo que está dentro del paréntesis es un 'and' sí funciona, pero si es un 'or' no. Debe haber algo que no sé y que explique este misterio y de paso me de una pista de cómo resolver el problema.
:confused:

__cadetill
15-09-2003, 10:10:01
Bueno, para empezar, la fecha tiene que ir entrecomillada

QuotedStr(Fecha)

y luego, el formato de la fecha ha de ser el correcto

dd/mm/yyyy

aunque seguramente será

mm/dd/yyyy

Espero te sirva

gerly
16-09-2003, 02:27:27
No cadetill, creo que no me sirve. Es que sin paréntesis funciona, por eso pienso que no es cuesíón de comillas ni del formato de la fecha.
De todos modos voy a probar.:(

Aprendiz
16-09-2003, 12:28:22
Hola

Desconozco si en objetos ADO existe pero has probado a en vez de cargar la propiedad Filter hacerlo en el evento OnFilterRecord pasandole como parámetros en variables globales las Fechas que quieres consultar.

Saludos