Guest --Daniel -- Postado Novembro 4, 2008 Denunciar Share Postado Novembro 4, 2008 olá pessoal, estou com um probleminha aqui no meu sistema, gostaria de ajuda de vocês...tenho uma tabela tbl_contas_apagarnela tem um campo data_vencimentopreciso fazer um filtro pras datas de vencimento,l por exemplo... quero ver somente as contas a pagar do dia 01/11/2008 a 15/11/2008como fazer esse filtro???ah... meu BD é ACCESSobrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Novembro 4, 2008 Denunciar Share Postado Novembro 4, 2008 Voce pode usar a ideia do colega Progr'amador, neste post. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 dan_visualdm Postado Novembro 4, 2008 Denunciar Share Postado Novembro 4, 2008 Voce pode usar a ideia do colega Progr'amador, neste post.olá amigo... não entendi isso não...porque lá ele fala em gerar relatório, na verdade eu preciso filtrar esse no DBGridtentei fazer o que falava nesse tópico, mas não funciono não....queria assim, na Edit1 digitar uma data e na Edit2 outra data... e dai ele mostrar na DBgrid somente os dados que estão no intervalos dos valores filtrados.... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Novembro 4, 2008 Denunciar Share Postado Novembro 4, 2008 (editado) não entendi isso não...porque lá ele fala em gerar relatório, na verdade eu preciso filtrar esse no DBGridtentei fazer o que falava nesse tópico, mas não funciono não....queria assim, na Edit1 digitar uma data e na Edit2 outra data... e dai ele mostrar na DBgrid somente os dados que estão no intervalos dos valores filtrados....Daniel Henrique M. Doro, supondo que você use um dataset tipo query para mostrar os dados no seu DBGrid, o que você precisará é exatamente aquele tipo de consulta que lá está.É uma consulta onde os dados são filtrados por data - não importa que seja para uso em um relatório ou em um form - será sempre daquela forma. Eu apenas diria que a linha referente a cláusula GROUP BY não se aplica ao seu caso.Lá no exemplo, os parâmetros são preenchidos com a propriedade Text de TMaskEdit's - praticamente nenhuma diferença para seus os seus TEdit's.Já se você usar um dataset tipo table, então as coisas mudam um pouquinho. Mas, daí, ficaremos no "achismo" porque faltam mais informações.Abraços Editado Novembro 4, 2008 por Micheus Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 dan_visualdm Postado Novembro 5, 2008 Denunciar Share Postado Novembro 5, 2008 não entendi isso não...porque lá ele fala em gerar relatório, na verdade eu preciso filtrar esse no DBGridtentei fazer o que falava nesse tópico, mas não funciono não....queria assim, na Edit1 digitar uma data e na Edit2 outra data... e dai ele mostrar na DBgrid somente os dados que estão no intervalos dos valores filtrados....Daniel Henrique M. Doro, supondo que você use um dataset tipo query para mostrar os dados no seu DBGrid, o que você precisará é exatamente aquele tipo de consulta que lá está.É uma consulta onde os dados são filtrados por data - não importa que seja para uso em um relatório ou em um form - será sempre daquela forma. Eu apenas diria que a linha referente a cláusula GROUP BY não se aplica ao seu caso.Lá no exemplo, os parâmetros são preenchidos com a propriedade Text de TMaskEdit's - praticamente nenhuma diferença para seus os seus TEdit's.Já se você usar um dataset tipo table, então as coisas mudam um pouquinho. Mas, daí, ficaremos no "achismo" porque faltam mais informações.Abraçosolá amigo, vou ver se entendi aqui e vou tentar fazer, depois posto aqui o resultado...estou usando dentro do DataModule... ADOQuery´s para ligações com meu banco.obrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 dan_visualdm Postado Janeiro 13, 2009 Denunciar Share Postado Janeiro 13, 2009 olá...bom, ainda não consegui rsolver esse problema... tentei da seguinte forma:begin dm.q_clientes.Close; dm.q_clientes.Sql.Clear; dm.q_clientes.Sql.Add('Select * from tbl_clientes where fim_contrato Beetwen :dataini and :datafim'); dm.q_clientes.Parameters.ParamByName('dataini').Value := MaskEdit1.text; dm.q_clientes.Parameters.ParamByName('datafim').Value := MaskEdit2.text; dm.q_clientes.Open; end;mas é apresentado o seguinte erro:erro de sintaxe (operador faltando) na expressão de consulta 'fim_contrato Beetwen ? and ?'como resolver?BD - accessADOQuery Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 António44 Postado Janeiro 13, 2009 Denunciar Share Postado Janeiro 13, 2009 (editado) Tem aqui tb outros jeitos de fazer esse filtro.dm.q_clientes.Sql.Add('Select * from tbl_clientes where fim_contrato <> ' ' and ( data >= :DataIni and Data <= :DataFim ); begin dm.q_clientes.Close; dm.q_clientes.Filter:='Data >= ''' +DateToStr(Date1.date)+ ''' and fim_contrato <= '''+DateToStr(Date2.Date) +''''; dm.q_clientes.Filtered:=True;//aqui uso 2 dateTimePicker ou 2 DateEdit dm.q_clientes.Open; end; Abraços. Editado Janeiro 13, 2009 por António44 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 dan_visualdm Postado Janeiro 13, 2009 Denunciar Share Postado Janeiro 13, 2009 olá amigo...segui o que você me passou, montei assim:begin dm.q_clientes.Close; dm.q_clientes.Filter:='Data >= ''' +DateToStr(DateTimePicker1.date)+ ''' and fim_contrato <= '''+DateToStr(DateTimePicker1.Date) +''''; dm.q_clientes.Filtered:=True; dm.q_clientes.Open; end;mas quando eu faço o filtro o seguinte erro é apresentado:O item não pode ser encontrado na coleção correspondente ao nome ou ao ordinal solicitado.o que sera que esta acontecendo? obrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Janeiro 14, 2009 Denunciar Share Postado Janeiro 14, 2009 begin dm.q_clientes.Close; dm.q_clientes.Sql.Clear; dm.q_clientes.Sql.Add('Select * from tbl_clientes where fim_contrato Beetwen :dataini and :datafim'); dm.q_clientes.Parameters.ParamByName('dataini').Value := MaskEdit1.text; dm.q_clientes.Parameters.ParamByName('datafim').Value := MaskEdit2.text; dm.q_clientes.Open; end; mas é apresentado o seguinte erro: erro de sintaxe (operador faltando) na expressão de consulta 'fim_contrato Beetwen ? and ?'dan_visualdm, experimente usar na atribuição ao parâmetro: StrToDate(MaskEdit1.text) e StrToDate(MaskEdit2.text), respectivamente. begin dm.q_clientes.Close; dm.q_clientes.Filter:='Data >= ''' +DateToStr(DateTimePicker1.date)+ ''' and fim_contrato <= '''+DateToStr(DateTimePicker1.Date) +''''; dm.q_clientes.Filtered:=True; dm.q_clientes.Open; end;mas quando eu faço o filtro o seguinte erro é apresentado:O item não pode ser encontrado na coleção correspondente ao nome ou ao ordinal solicitado.Aqui, eu acredito que o problema é a forma como o Access trata as datas - ele usa o # como delimitador e não ' (aspas simples). Eu sugiro que você tente fazer o primeiro método funcionar (parametrização), porque evita problemas de portabilidade se no futuro você trocar de banco de dados. Mas, se quiser seguir com esta última abordagem, use o # no lugar das aspas simples.Este último método também não é muito interessante, se você pretende filtrar um período. É melhor que você já o faça na obtenção dos dados, pois estará minimizando o acesso ao banco e minimizando o processamento, já que não será feito o filtro sobre todos os resultados obtidos ao abrir o dataset.Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 dan_visualdm Postado Janeiro 14, 2009 Denunciar Share Postado Janeiro 14, 2009 olá... não sei se fiz certo (hhe, acho que não porque ainda deu o mesmo erro)begin dm.q_clientes.Close; dm.q_clientes.Sql.Clear; dm.q_clientes.Sql.Add('Select * from tbl_clientes where fim_contrato Beetwen :dataini and :datafim'); dm.q_clientes.Parameters.ParamByName('dataini').Value := StrToDate(MaskEdit1.text); dm.q_clientes.Parameters.ParamByName('datafim').Value := StrToDate(MaskEdit2.text); dm.q_clientes.Open; end;o que tem de errado ainda? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Janeiro 14, 2009 Denunciar Share Postado Janeiro 14, 2009 olá... não sei se fiz certo (hhe, acho que não porque ainda deu o mesmo erro)dan_visualdm, esta é a mensagem não é?!erro de sintaxe (operador faltando) na expressão de consulta 'fim_contrato Beetwen ? and ?'como resolver?Nada como ler direito a mensgem - só agora eu percebi. heheheDá uma olhada no texto em que ele diz o tal operador que ele diz estar faltando.... Aquela abelhinha gêmea não está soando muito bem não (trocadilho... bee=abelha; twin=gêmeo) :D a palabra é Between. Pode trocar que deve funcionar. (se não esquecemos de mais nada. rsrsrs)Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 dan_visualdm Postado Janeiro 14, 2009 Denunciar Share Postado Janeiro 14, 2009 uuuooOOOoOOOOlllLLllll!!!!que bunito... que beleza!!! rsss...agora funfo certinho... resolveu o problema aqui!!!poxa carinhaa... mais uma vez, muitoooo obrigado!!!=DDDabraçoss!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest --Daniel --
olá pessoal, estou com um probleminha aqui no meu sistema, gostaria de ajuda de vocês...
tenho uma tabela tbl_contas_apagar
nela tem um campo data_vencimento
preciso fazer um filtro pras datas de vencimento,l por exemplo... quero ver somente as contas a pagar do dia 01/11/2008 a 15/11/2008
como fazer esse filtro???
ah... meu BD é ACCESS
obrigado!
Link para o comentário
Compartilhar em outros sites
11 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.