Fórum Filtro com DateTimePicker não funciona! #197670
28/11/2003
0
Estou com um problemão... estou tentando fazer uma filtragem com um DateTimePicker e o DBGrid fica vazio.
Gostaria de ao clicar na data do DTP fosse realizado o filtro por data na tabela e exibisse no dbGrid.
Já fiz N buscas no forum e não achei a solução, inclusive, estes códigos que usei foram coletados no forum.
Uso BD Access com ADOTable.
segue o código do procedimento OnClick do DateTimePicker:
Onde estou errando já que a filtragem do evento OnShow deste form funciona perfeitamente?
Toda Ajuda será bem vinda!
Obrigado desde Já,
Douglas.
Douglas Bitencourt
Curtir tópico
+ 0Posts
28/11/2003
Bampavao
begin
Close;
SQL.Clear;
SQL.Add(´Select * from tblLancEntrada´); //tabela de Access
SQL.Add(´Where DATA = :d´);
Parameters.ParambyName(´d´).Value := DateTimePicker1.DateTime;
Open;
end;
Gostei + 0
28/11/2003
Marcelo.c
Gostei + 0
28/11/2003
Douglas Bitencourt
E agora?
Que que eu faço!! Tô no laço!! Que embaraço!!
Se tiver alguma outra idéia...
Obrigado desde Já,
Douglas.
Gostei + 0
28/11/2003
Rafael Heise
Verifique se o DataSource está setado Correto...
com que data você está testando?
verifique se não é porque deve ser usado o formato
mm/dd/yyyy ao invés de dd/mm/yyyy
para tal, use QuotedStr(FormatDateTime(´mm/dd/yyyy´,SuaData))
Gostei + 0
28/11/2003
Douglas Bitencourt
tentei a sua dica, mas tb não funcionou.
o dbgrid já teve valores sim, mas quando não usei query.
eis o código que deu certo, mas somente no evento OnFilterRecord do AdoTable:
tentei também este código para o evento change e click do DateTimePicker:
Quando uso AdoTable só funciona no evento OnFilterRecord do AdoTable.
E o OnClick do DTP não.
Agora o código que usei no evento OnFilterRecord do AdoQuery:
... e no evento OnChange do DTP...
Onde será que está o Wally??
Isso tá tirando meu sono mano...
Obrigado desde Já
Douglas
Gostei + 0
29/11/2003
Rafael Heise
verifique se na sua tabela, tem dados com a data passada pelo TDateTimePicker.
Talvez, ele não esteja retornando a data correta, e não está trazendo registro nenhum no TADOQuery.Verifique a data que o datetimepicker está trazendo. Vá debugando seu código. Veja se está entrando no OnClick ou no OnChange do DataTimePicker. Experimente abrir a query comente com SELECT * FROM TABELA e veja se os registros aparecem. Faça alguns testes desse tipo e tente ver o que realmente pode estar acontecendo. Veja se a query está conseguindo abrir, essas coisas.
blz?
mas assim pelo código que você passou, aparenta não ter erros. Mas posso estar enganado também
valeu!
Gostei + 0
29/11/2003
Douglas Bitencourt
como diz um companheiro aki do forum que não me lembro o nome:
´Parece dificil mas não é fácil não´
O problema era que ao clicar no DTP executava o código e também o que estava no evento OnFilterRecord da tabela.
Ou seja, executava 3 vs o filtro. A primeira ao abrir o form, a segunda no change do DTP e a terceira pelo fato de filtrar com o DTP ativar a tabela e o evento OnFilterRecord novamente, zerando o dbgrid.
A solução foi implementar no onShow do form o código e remover do OnFilterRecord. Desta forma roda belezinha.
Gostaria de agradecer a todos pelo apoio, pois, suas idéias me fizeram chegar a solução.
Segue o código que funcionou...
[b:4c92b0a776]
Estes códigos não funcionam desta maneira com QUERY, e sim com TABLE.
[/b:4c92b0a776]
Mais uma vez obrigado,
Douglas.
Gostei + 0
24/02/2015
Carlos Filho
Dm.tbvenda.Filter:='Data_Venda >='+QuotedStr(datetostr(datainicial.date))+' and Data_Venda <='+QuotedStr(datetostr(datafinal.date));
dm.tbvenda.Filtered:=true;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)