Fechas en Filtros
Hola a todos.
Tengo un problema con un filtro en Delphi. Os explico. Quiero hacer un filtro de las bajas cuya fecha de inicio sea mayor que una fecha INI y cuya fecha fin sea vacía o menor que una fecha FIN. El problema es que no se como poner lo de que la fecha sea vacía. He probado con IS NULL, NULL, BLANK y no me funciona nada. Tabla.Filter:='Fecha > #'+INI+'# AND (Fecha = NULL OR Fecha < #'+FIN+'#)'; Al activar el filtro me da un error. Gracias. |
Hola,
Nunca he usado NULL con fechas, pero segun la ayuda de delphi FECHA=NULL deberia funcionar. ¿ Te funciona si quitas lo de fecha=null ?? Un saludo |
Pues si me funciona lo de FechaFin=NULL.
La consulta en la que se encuentra ese código es la siguiente, que es la que no me funciona, porque me dice "argumentos incorrectos o en conflicto con otros". Es un problema del OR y el AND, porque si le quito a partir del AND si me funciona. BD.Baja.Filter:='(FechaFin > #'+fechaI+'# OR FechaFin = NULL) AND FechaInicio <= #'+fechaF+'#'; Gracias. |
Prueba a poner esto:
BD.Baja.Filter:='((FechaFin > #'+fechaI+'# OR FechaFin = NULL) AND (FechaInicio <= #'+fechaF+'#))'; No lo he probado, pero creo que funcionara |
Tampoco me ha funcionado el filtro.
Finalmente he tenido que implementarlo con el método FilterRecord: procedure TBD.BAJAFilterRecord(DataSet: TDataSet; var Accept: Boolean); begin if bd.BAJAFechaInicio.Value <= fechaF then if (bd.BAJAFechaFin.Value > fechaI) OR (bd.BAJAFechaFin.Value=0) then accept:=true else accept:=false else accept:=false; end; |
La franja horaria es GMT +2. Ahora son las 01:05:29. |
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