Consulta entre datas

Firebird

14/04/2004

Como consultar entre intervalo de datas sendo que a primeira data seja vazia? se o usuario digitar a primeira data tah dando certo a consulta, caso contrario nao sei o q fazer...


fiz o seguinte: (é uma consulta de contas a pagar por fornecedor e por data de emissao do documento, sendo q a primeira data pode ser vazia e dai com isso a consulta irá trazer todos os documentos do fornecedor ate a data final especificada)

IMDMF.TB_CONTAPAG.SQL.CLEAR;

IMDMF.TB_CONTAPAG.SQL.ADD(´SELECT * FROM CP01DOCU WHERE CP_CODIFOR=:CODIFOR AND CP_DATAEMI BETWEEN :DATAINICIAL AND :DATAFINAL´);
IMDMF.TB_CONTAPAG.PARAMBYNAME(´CODIFOR´).VALUE:=CEDIT1.TEXT; //codigo do fornecedor

IF ME1.TEXT=´ / / ´ THEN
IMDMF.TB_CONTAPAG.PARAMBYNAME(´DATAINICIAL´).VALUE:=NULL //data inicial vazia
ELSE
IMDMF.TB_CONTAPAG.PARAMBYNAME(´DATAINICIAL´).VALUE:=STRTODATE(ME1.TEXT); //data inicial preenchida

IMDMF.TB_CONTAPAG.PARAMBYNAME(´DATAFINAL´).VALUE:=STRTODATE(ME2.TEXT); //data final
IMDMF.TB_CONTAPAG.OPEN;


nao esta dando certo ....

Falow !


Marfred

Marfred

Curtidas 0

Respostas

Fabio.hc

Fabio.hc

14/04/2004

Tente assim:

IMDMF.TB_CONTAPAG.SQL.CLEAR;

IMDMF.TB_CONTAPAG.SQL.ADD(´SELECT * FROM CP01DOCU WHERE CP_CODIFOR=:CODIFOR AND ´);
IMDMF.TB_CONTAPAG.PARAMBYNAME(´CODIFOR´).VALUE:=CEDIT1.TEXT; //codigo do fornecedor

IF ME1.TEXT=´ / / ´ THEN
   begin
   IMDMF.TB_CONTAPAG.SQL.ADD(´ CP_DATAEMI <= :DATAFINAL´);
   end
ELSE
   begin
   IMDMF.TB_CONTAPAG.SQL.ADD(´ CP_DATAEMI BETWEEN :DATAINICIAL AND :DATAFINAL´);
   IMDMF.TB_CONTAPAG.PARAMBYNAME(´DATAINICIAL´).VALUE:=STRTODATE(ME1.TEXT); //data inicial preenchida
   end;

IMDMF.TB_CONTAPAG.PARAMBYNAME(´DATAFINAL´).VALUE:=STRTODATE(ME2.TEXT); //data final
IMDMF.TB_CONTAPAG.OPEN;



GOSTEI 0
POSTAR