Fórum Filtro por data #345142
27/08/2007
0
Preciso fazer um filtro por data, mas está dando erro. Estou utilizando um componente MaskEdit cuja data que desejo filtrar será digitada. Porém, logo no primeiro dígito aparece uma mensagem de erro. O banco utilizado é Access e tanto o campo da tabela quanto o componente TMaskEdit possuem a máscara ´00/00/0000;0;´. Agradeço quem puder me ajudar nessa questão.
Segue abaixo o código:
procedure TFrmPesquisa.MskEdtDatNasChange(Sender: TObject);
var
Data: TDateTime;
begin
DmSeguros.TbSegurados.IndexName := ´DATNAS´;
Data := strtodate(MskEdtDatNas.Text); // O erro ocorre aqui!!!
with QryPesquisa do
begin
QryPesquisa.Close;
QryPesquisa.Sql.Clear;
QryPesquisa.Sql.Add(´Select * from Segurados Where DatNas = :Data Order By NomSeg´);
QryPesquisa.ParamByName(´Data´).AsDate := strtodate(MskEdtDatNas.Text);
QryPesquisa.Open;
if QryPesquisa.IsEmpty then
MessageDlg(´Não existem dados.´, mtInformation, [mbOk], 0);
end;
end;
Sgrandini
Curtir tópico
+ 0Posts
28/08/2007
Daykas
Inicio: String;
Final: String;
begin
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;
query1.SQL.Text := ´SELECT * FROM boleto WHERE dtpagto >=:pInicial and dtpagto<=:pFinal ORDER BY dtpagto ASC´;
query1.ParamByName(´pInicial´).AsDateTime := StrToDate(Inicio);
query1.ParamByName(´pFinal´).AsDateTime := StrToDate(Final);
query1.Open;
messagedlg(IntToStr(query1.RecordCount)+´ registros encontrados no filtro,mtinformation,[mbok],0);
end;
Divirta-se ai amigo!
Gostei + 0
29/08/2007
Sgrandini
Gostei + 0
29/08/2007
Daykas
dt_nasc: String;
begin
dt_nasc := maskedit1.text;
query1.Close;
query1.SQL.Clear;
query1.SQL.Text := ´SELECT * FROM mailing_contato WHERE dt_nasc >=:pdt_nasc order by nome asc´;
query1.ParamByName(´pdt_nasc´).AsDateTime := StrToDate(dt_nasc);
query1.Open;
showmessage(´Registros: ´ + IntToStr(query1.RecordCount));
Divirta-se!!!
Gostei + 0
01/09/2007
Sgrandini
Obrigada mais uma vez.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)