consulta DD/MM (não consegui mais respostas no outro tópico)
desculpem-me pelo inconveniente, mas o código que consegui no outro tópico rodou e deu um resultado, mas não é o q quero ainda, não veio com os anos passados, só em 2014
bom: estou com esse código no ADOQuery
select * From Membros
where DataNascimento
e esse código no botão de consulta
ConsultaAniver.Close;
ConsultaAniver.SQL.CLEAR;
ConsultaAniver.SQL.ADD('SELECT * FROM Membros WHERE DataNascimento between :DATAI AND :DATAF ');
ConsultaAniver.parameters.ParamByName('datai').Value := FormatDateTime('dd/mm', StrToDate(Jvmaskedit1.text));
ConsultaAniver.parameters.ParamByName('dataf').Value := FormatDateTime('dd/mm', StrToDate(Jvmaskedit1.text));
ConsultaAniver.open;
mais só esta me retornando o dia e mês exato, da consulta, sendo que quero que: seja entre a data pesquisada,
tipo: entre 24/04 e 24/05, e mostre as datas independente do ano!
bom: estou com esse código no ADOQuery
select * From Membros
where DataNascimento
e esse código no botão de consulta
ConsultaAniver.Close;
ConsultaAniver.SQL.CLEAR;
ConsultaAniver.SQL.ADD('SELECT * FROM Membros WHERE DataNascimento between :DATAI AND :DATAF ');
ConsultaAniver.parameters.ParamByName('datai').Value := FormatDateTime('dd/mm', StrToDate(Jvmaskedit1.text));
ConsultaAniver.parameters.ParamByName('dataf').Value := FormatDateTime('dd/mm', StrToDate(Jvmaskedit1.text));
ConsultaAniver.open;
mais só esta me retornando o dia e mês exato, da consulta, sendo que quero que: seja entre a data pesquisada,
tipo: entre 24/04 e 24/05, e mostre as datas independente do ano!
Moabe Oliveira
Curtidas 0
Respostas
Mr. White
28/01/2014
Não sei se é erro de digitação, mas os dois parâmetros estão preenchidos com a mesma caixa de texto
Se :datai e :dataf forem iguais só vai trazer o dia exato mesmo..
...
ConsultaAniver.parameters.ParamByName('datai').Value := FormatDateTime('dd/mm', StrToDate(Jvmaskedit1.text));
ConsultaAniver.parameters.ParamByName('dataf').Value := FormatDateTime('dd/mm', StrToDate(Jvmaskedit1.text));
ConsultaAniver.open;
Se :datai e :dataf forem iguais só vai trazer o dia exato mesmo..
GOSTEI 0
Moabe Oliveira
28/01/2014
então, mais quando eu faço a consulta ai, com o programa rodando, digito o intervalo tipo de um mes, e nao ta vindo, quando vem, parece só os de 2014, coloquei outros anos e não aparece resultado na consulta
GOSTEI 0
Marcos Saffran
28/01/2014
Olá Moabe,
altere a sua select para algo assim:
SELECT * FROM Membros WHERE MONTH(DataNascimento) between :MES_DATAI AND :MES_DATAF and DAY(DATANASCIMENTO) between :DIA_DATAI AND :DIA_DATAF
e depois posta ela aqui para vermos como ficou.
altere a sua select para algo assim:
SELECT * FROM Membros WHERE MONTH(DataNascimento) between :MES_DATAI AND :MES_DATAF and DAY(DATANASCIMENTO) between :DIA_DATAI AND :DIA_DATAF
e depois posta ela aqui para vermos como ficou.
GOSTEI 0
Moabe Oliveira
28/01/2014
fiz a modificação que me falou o código ficou assim:
mas, agora n ta mostrando mais nenhum resultado.. :s
ConsultaAniver.Close;
ConsultaAniver.SQL.CLEAR;
ConsultaAniver.SQL.ADD('SELECT * FROM Membros WHERE MONTH(DataNascimento) between :MES_DATAI AND :MES_DATAF and DAY(DATANASCIMENTO) between :DIA_DATAI AND :DIA_DATAF ');
ConsultaAniver.parameters.ParamByName('MES_DATAI').Value := FormatDateTime('dd/mm', StrToDate(Jvmaskedit1.text));
ConsultaAniver.parameters.ParamByName('DIA_DATAI').Value := FormatDateTime('dd/mm', StrToDate(Jvmaskedit1.text));
ConsultaAniver.parameters.ParamByName('MES_DATAF').Value := FormatDateTime('dd/mm', StrToDate(Jvmaskedit2.text));
ConsultaAniver.parameters.ParamByName('DIA_DATAF').Value := FormatDateTime('dd/mm', StrToDate(Jvmaskedit2.text));
ConsultaAniver.open;mas, agora n ta mostrando mais nenhum resultado.. :s
GOSTEI 0
Marcos Saffran
28/01/2014
tente com as seguintes alterações:
ConsultaAniver.Close;
ConsultaAniver.SQL.CLEAR;
ConsultaAniver.SQL.ADD('SELECT * FROM Membros WHERE MONTH(DataNascimento) between :MES_DATAI AND :MES_DATAF and DAY(DATANASCIMENTO) between :DIA_DATAI AND :DIA_DATAF ');
ConsultaAniver.parameters.ParamByName('MES_DATAI').Value := FormatDateTime('mm', StrToDate(Jvmaskedit1.text));
ConsultaAniver.parameters.ParamByName('DIA_DATAI').Value := FormatDateTime('dd', StrToDate(Jvmaskedit1.text));
ConsultaAniver.parameters.ParamByName('MES_DATAF').Value := FormatDateTime('mm', StrToDate(Jvmaskedit2.text));
ConsultaAniver.parameters.ParamByName('DIA_DATAF').Value := FormatDateTime('dd', StrToDate(Jvmaskedit2.text));
ConsultaAniver.open;GOSTEI 0
Moabe Oliveira
28/01/2014
Bom dia Marcos Alfredo Saffran, eu tentei com o código que colocou, e ainda não esta dando nenhum resultado na busca .. fiz vários testes ...
GOSTEI 0
Marcos Saffran
28/01/2014
Bom dia Moabe,
tente executar a seguinte select diretamente no seu banco de dados:
SELECT * FROM Membros WHERE MONTH(DataNascimento) between 01 AND 04 and DAY(DATANASCIMENTO) between 01 AND 15;
deve retornar todos que nasceram entre os meses de janeiro e abril, e com dia de nascimento entre os dias 01 e 15.
informe se deu resultado ou se deu erro.
tente executar a seguinte select diretamente no seu banco de dados:
SELECT * FROM Membros WHERE MONTH(DataNascimento) between 01 AND 04 and DAY(DATANASCIMENTO) between 01 AND 15;
deve retornar todos que nasceram entre os meses de janeiro e abril, e com dia de nascimento entre os dias 01 e 15.
informe se deu resultado ou se deu erro.
GOSTEI 0
Moabe Oliveira
28/01/2014
como executo direto no banco ? tou usando access adosql e um data source, com o comando digitado no adosql: select * from Membros where DataNascimento, ja aparece todos os aniversariantes no dbgrid, antes de rodar o programa, então acho q ta normal ..
GOSTEI 0
Marcos Saffran
28/01/2014
como executo direto no banco ? tou usando access adosql e um data source, com o comando digitado no adosql: select * from Membros where DataNascimento, ja aparece todos os aniversariantes no dbgrid, antes de rodar o programa, então acho q ta normal ..
ok, então coloque o comando no adosql e veja o que aparece no dbgrid
SELECT * FROM Membros WHERE MONTH(DataNascimento) between 01 AND 04 and DAY(DATANASCIMENTO) between 01 AND 15
senão você terá que digitar o comando dentro do access.
GOSTEI 0
Moabe Oliveira
28/01/2014
quando coloco esse comando SQL que ativo o adoSQL , ja some tudo do dbgrid
GOSTEI 0
Marcos Saffran
28/01/2014
Por favor poste o resultado quando você executa o comando:
select * from Membros where DataNascimento
select * from Membros where DataNascimento
GOSTEI 0
Moabe Oliveira
28/01/2014
eu já até comentei.. desde o inicio uso esse select,
aparece todos os cadastros
aparece todos os cadastros
GOSTEI 0
Marcos Saffran
28/01/2014
eu já até comentei.. desde o inicio uso esse select,
aparece todos os cadastros
aparece todos os cadastros
eu só pedi para vermos se há algum detalhe na sua tabela que pode nos ajudar a resolver o seu problema.
GOSTEI 0
Moabe Oliveira
28/01/2014
então, no código inicial que postei , trazia os resultados certos dos dias e mes, só que só trazia os que tinham o ano 2014, e quero que mostre independente do ano ..
GOSTEI 0
Douglas
28/01/2014
então, no código inicial que postei , trazia os resultados certos dos dias e mes, só que só trazia os que tinham o ano 2014, e quero que mostre independente do ano ..
Moabe, já tínhamos concluído este assunto. Mas analisando a conversa no tópico, a minha pergunta é, a sua tabela de consulta contém dados com ano inferior a 2014?
GOSTEI 0
Moabe Oliveira
28/01/2014
Douglas Claudio, depois eu até pedi desculpas, lá no primeiro post, e peço novamente, foi falha minha, vi os resultados e n analisei!
sim tem de vários anos, mais quando realizo a consulta, só vem do ano de 2014
sim tem de vários anos, mais quando realizo a consulta, só vem do ano de 2014
GOSTEI 0
Douglas
28/01/2014
Moabe,
Qual é o código que você esta utilizando hoje, para efetuar a consulta.
Qual é o código que você esta utilizando hoje, para efetuar a consulta.
GOSTEI 0
Moabe Oliveira
28/01/2014
ConsultaAniver.Close;
ConsultaAniver.SQL.CLEAR;
ConsultaAniver.SQL.ADD('SELECT * FROM Membros WHERE DataNascimento between :DATAI AND :DATAF ');
ConsultaAniver.parameters.ParamByName('datai').Value := FormatDateTime('dd/mm', StrToDate(Jvmaskedit1.text));
ConsultaAniver.parameters.ParamByName('dataf').Value := FormatDateTime('dd/mm', StrToDate(Jvmaskedit2.text));
ConsultaAniver.open;GOSTEI 0
Douglas
28/01/2014
ConsultaAniver.Close;
ConsultaAniver.SQL.CLEAR;
ConsultaAniver.SQL.ADD('SELECT * FROM Membros WHERE DataNascimento between :DATAI AND :DATAF ');
ConsultaAniver.parameters.ParamByName('datai').Value := FormatDateTime('dd/mm', StrToDate(Jvmaskedit1.text));
ConsultaAniver.parameters.ParamByName('dataf').Value := FormatDateTime('dd/mm', StrToDate(Jvmaskedit2.text));
ConsultaAniver.open;Moabe, como esta o formato da data no banco. Qual é o banco de dados que você esta utilizando?
GOSTEI 0
Moabe Oliveira
28/01/2014
Estou utilizando o Access, e o Formata esta em Data/Hora
GOSTEI 0
Marcos Saffran
28/01/2014
Moabe, dê uma lida no arquivo abaixo e veja se te ajuda:
http://www.sergio.pro.br/trabalhos/05_comandos_para_consultas_via_sql_no_ms_access.pdf
http://www.sergio.pro.br/trabalhos/05_comandos_para_consultas_via_sql_no_ms_access.pdf
GOSTEI 0
Moabe Oliveira
28/01/2014
deei uma lida, e achei uma solução pra mim, mas novamente preciso da ajuda de vocês,
criei um outro campo na tabela com nome DiaAniv, quero pegar o valor do JvDBDateEdit1 e salvar no campo DiaAniv sem o ano:(DD/MM)! ai vai ficar mais fácil a busca..
podem me ajudar com isso ?
desde já muito obrigado pela ajuda até aqui .!
criei um outro campo na tabela com nome DiaAniv, quero pegar o valor do JvDBDateEdit1 e salvar no campo DiaAniv sem o ano:(DD/MM)! ai vai ficar mais fácil a busca..
podem me ajudar com isso ?
desde já muito obrigado pela ajuda até aqui .!
GOSTEI 0
Marcos Saffran
28/01/2014
Moabe, não uso esse componente, mas você pode usar o DayOf(DateTime) para pegar o dia e o MonthOf(DateTime) para pegar o mês.
GOSTEI 0
Douglas
28/01/2014
deei uma lida, e achei uma solução pra mim, mas novamente preciso da ajuda de vocês,
criei um outro campo na tabela com nome DiaAniv, quero pegar o valor do JvDBDateEdit1 e salvar no campo DiaAniv sem o ano:(DD/MM)! ai vai ficar mais fácil a busca..
podem me ajudar com isso ?
desde já muito obrigado pela ajuda até aqui .!
criei um outro campo na tabela com nome DiaAniv, quero pegar o valor do JvDBDateEdit1 e salvar no campo DiaAniv sem o ano:(DD/MM)! ai vai ficar mais fácil a busca..
podem me ajudar com isso ?
desde já muito obrigado pela ajuda até aqui .!
Moabe, no tópico que você tinha aberto anteriormente, eu tinha lhe explicado como pegar o dia e mês usando a função Copy lembra?
GOSTEI 0
Moabe Oliveira
28/01/2014
Lembro sim, só que não me trouxe os resultados independente do ano, por isso achei essa solução, tou estudando sobre isso na net pra ver se consigo..
GOSTEI 0
Carlos Amaral
28/01/2014
Olá, boa tarde !!
Pesquise a função DATEPART no ACCESS.
Um abraço,
Carlos
Pesquise a função DATEPART no ACCESS.
Um abraço,
Carlos
GOSTEI 0