Coloque no formulário dois componentes TDateTimePicker, um TDbgrid e um TButton. Ligue seu TDbgrid a tabela do teu banco que queres aplicar a consulta, e no evento onclic do compoenente TButton adicione o código abaixo.
If DateTimePicker2.Date < DateTimePicker1.Date Then
begin
ShowMessage('Intervalo de datas inválido, a data inicial é maior que a data final!');
DateTimePicker2.Date := DateTimePicker1.Date;
end
Else
begin
Inicio := DateToStr(DateTimePicker1.Date);
Final := DateToStr(DateTimePicker2.Date);
Query1.Close;
Query1.SQL.Clear;
//Campos utilizados somente para exemplo. Utilize os campos que achar necessário apresentação
//em seu Dbgrid
Query1.SQL.Text := 'SELECT Nome,Empresa,FoneRes,FoneCom,Mala FROM Contatos
WHERE Data >=:pInicial and Data<=:pFinal ORDER BY Nome';
Query1.ParamByName('pInicial').AsDateTime := StrToDate(Inicio);
Query1.ParamByName('pFinal').AsDateTime := StrToDate(Final);
Query1.Prepare;
Query1.Open;
DBGrid.SetFocus;
end;
Label3.Caption := 'Total de contatos: ' + IntToStr(Query1.RecordCount) ;
If DateTimePicker2.Date < DateTimePicker1.Date Then
begin
ShowMessage('Intervalo de datas inválido, a data inicial é maior que a data final!');
DateTimePicker2.Date := DateTimePicker1.Date;
end
Else
begin
Inicio := DateToStr(DateTimePicker1.Date);
Final := DateToStr(DateTimePicker2.Date);
Query1.Close;
Query1.SQL.Clear;
//Campos utilizados somente para exemplo. Utilize os campos que achar necessário apresentação
//em seu Dbgrid
Query1.SQL.Text := 'SELECT Nome,Empresa,FoneRes,FoneCom,Mala FROM Contatos
WHERE Data >=:pInicial and Data<=:pFinal ORDER BY Nome';
Query1.ParamByName('pInicial').AsDateTime := StrToDate(Inicio);
Query1.ParamByName('pFinal').AsDateTime := StrToDate(Final);
Query1.Prepare;
Query1.Open;
DBGrid.SetFocus;
end;
Label3.Caption := 'Total de contatos: ' + IntToStr(Query1.RecordCount) ;
Nenhum comentário:
Postar um comentário