Fórum Fazer cunsulta entre duas datas com Delphi 3 #382891
05/08/2010
Tenho uma tabela chamada Tb_Vendas
Nessa tabela eu tenho uma campo chamado DataVenda(Date), e quero que o usuário digite a data inicial em um campo edit_DataInicio e a data final em um campo edit_DataFinal, e então o programa filtra todas as vendas que estiverem entre essas duas datas.
Tentei Utilizar SQL, mas eu só consigo selecionar a todas as vendas da tabela, quando eu dou o comando:
query_Vendas.close;
query_Vendas.SQL.Clear;
query_Vendas.SQL.Text:= 'SELCT * from query_Vendas WHERE DataVenda >= edit_Inicial.text'; // filtrando todas as vendas mairoes do que a data inicial
query_Vendas.Prepare;
query_Vendas.Open;
Ele não reconhece o edit_Inicial, já tentei colocar esse valor em uma variável, mas também não obtive sucesso.....
. Por favor me ajudem .....
Posts
05/08/2010
Eriley Barbosa
query_Vendas.close;
query_Vendas.SQL.Clear;
query_Vendas.SQL.Text:= 'SELECT * from Vendas WHERE DataVenda >= ' + QuotedStr(edit_Inicial.text) +
' AND DataVenda <= ' + QuotedStr(edit_final.text) ; // filtrando todas as vendas mairoes do que a data inicial
query_Vendas.Prepare;
query_Vendas.Open;
Se não conseguir, poste a estrutura de sua tabela e o código que está utilizando.
Atenciosamente
Eriley
05/08/2010
Emerson Nascimento
recomendo não concatenar as datas. prefira usar parâmetros, para evitar problemas no formato da data.
query_vendas.close;
query_vendas.SQL.Text := 'select * from vendas where datavenda between :datainicial and :datafinal';
query_vendas.ParamByName('datainicial').AsDate := StrToDate(edit_Inicial.Text);
query_vendas.ParamByName('datafinal').AsDate := StrToDate(edit_Final.Text);
query_vendas.Open;
Parece que deu certo........
Qualquer coisa eu escrevo de novo
Muito obrigado....