Ajuda em filtro com componente dbdatetimepicker
desde já agradeço muito quem puder me dar uma mão ..........
estou usando uma tabela paradox
e tentando fazer um filtro entre duas datas usando 2 dbtimepicker
a tabela esta no meu datamodule For_ligabancodados
quando copilo ele passa mas o filtro da o seguinte erro field data not found
aqui está o código:
For_ligabancodados.table3.Filtered := False;
For_ligabancodados.table3.Filter := Data de chegada >= + DatetoStr(dbdatetimepicker1.date) +
and Data de saida <= + DatetoStr(dbdatetimepicker2.date);
For_ligabancodados.table3.Filtered := True;
quem tiver alguma outra forma de fazer isso agradeço de montão ....
estou usando uma tabela paradox
e tentando fazer um filtro entre duas datas usando 2 dbtimepicker
a tabela esta no meu datamodule For_ligabancodados
quando copilo ele passa mas o filtro da o seguinte erro field data not found
aqui está o código:
For_ligabancodados.table3.Filtered := False;
For_ligabancodados.table3.Filter := Data de chegada >= + DatetoStr(dbdatetimepicker1.date) +
and Data de saida <= + DatetoStr(dbdatetimepicker2.date);
For_ligabancodados.table3.Filtered := True;
quem tiver alguma outra forma de fazer isso agradeço de montão ....
Marcondes
Curtidas 0
Respostas
Joel Rodrigues
25/07/2012
O nome do campo parece estar errado, o nome da coluna não pode conter espaços. Verifique se é DATA, DATA_DA_ENTRADA, etc.
Boa sorte.
Boa sorte.
GOSTEI 0
Marcondes
25/07/2012
muito obrigado por ter me respondido
mas conseguir achar o erro
realmente era quando chamava o campo do field. Conseguir com espaço sim mas teria que colocar em [ ], mas quando colocava os cochetes dava um erro de aritimética num sei o que lá. por causa dos operadores >=, <=. Foi preciso converter as datas para string. Acho que tem forma de fazer mas fácil, mas não manjo muito de programação. Aqui está como conseguir fazer para dar certo, talvez ajude alguém.
procedure TPesquisaReserva.BitBtn4Click(Sender: TObject);
var
D1: string;
D2: string;
begin
D1 := datetostr(dbdatetimepicker1.Datetime);
d2 := datetostr(dbdatetimepicker2.Datetime);
For_ligabancodados.table3.Filtered := False;
For_ligabancodados.table3.Filter := [data de chegada] >= + QuotedStr(d1) + and [data de saida] <= + QuotedStr(d2);
For_ligabancodados.table3.Filtered := True;
end;
procedure TPesquisaReserva.FormCreate(Sender: TObject);
begin
dbdatetimepicker1.datetime :=date;
dbdatetimepicker2.datetime :=date;
end;
procedure TPesquisaReserva.BitBtn3Click(Sender: TObject);
begin
For_ligabancodados.table3.Filtered := False;
end;
end.
mas conseguir achar o erro
realmente era quando chamava o campo do field. Conseguir com espaço sim mas teria que colocar em [ ], mas quando colocava os cochetes dava um erro de aritimética num sei o que lá. por causa dos operadores >=, <=. Foi preciso converter as datas para string. Acho que tem forma de fazer mas fácil, mas não manjo muito de programação. Aqui está como conseguir fazer para dar certo, talvez ajude alguém.
procedure TPesquisaReserva.BitBtn4Click(Sender: TObject);
var
D1: string;
D2: string;
begin
D1 := datetostr(dbdatetimepicker1.Datetime);
d2 := datetostr(dbdatetimepicker2.Datetime);
For_ligabancodados.table3.Filtered := False;
For_ligabancodados.table3.Filter := [data de chegada] >= + QuotedStr(d1) + and [data de saida] <= + QuotedStr(d2);
For_ligabancodados.table3.Filtered := True;
end;
procedure TPesquisaReserva.FormCreate(Sender: TObject);
begin
dbdatetimepicker1.datetime :=date;
dbdatetimepicker2.datetime :=date;
end;
procedure TPesquisaReserva.BitBtn3Click(Sender: TObject);
begin
For_ligabancodados.table3.Filtered := False;
end;
end.
GOSTEI 0
William
25/07/2012
Colega nunca usei colchetes para filtro, só ser for alguma particularidade para Paradox, quanto ao código inevitávelmente vc tera que converter a data em string porque o método Filter só aceita string, então adaptei seu código.
tbl1.Filtered := False;
tbl1.Filter := DATA_VENDA >= + QuotedStr(DateToStr(dtp1.Date)) + and DATA_VENDA <= + QuotedStr(DateToStr(dtp2.Date));
tbl1.Filtered := true;
tbl1.Filtered := False;
tbl1.Filter := DATA_VENDA >= + QuotedStr(DateToStr(dtp1.Date)) + and DATA_VENDA <= + QuotedStr(DateToStr(dtp2.Date));
tbl1.Filtered := true;
GOSTEI 0
Joel Rodrigues
25/07/2012
Eu também nunca vi esse uso dos colchetes, mas como funcionou, estou encerrando o tópico.
GOSTEI 0