CONSULTA SQL AO BANCO ACCESS
tenho um banco em access e quero fazer uma consulta da entre dia e mes
mais ou menos como esta abaixo mais não esta funcionando.
Alguem pode ajudar? O problema deve estar no between like
obrigado
mais ou menos como esta abaixo mais não esta funcionando.
Alguem pode ajudar? O problema deve estar no between like
obrigado
Private Sub CmdConsultar_Click()
MSFgrade.Clear
Call Form_Activate
Lin = 0
CONSULTASQL = "select CodiCont, NomeCont, DatNCont, IdadCont from TabContatos where DatNCont between like '" & TxtDataInicio.Text & "%' and '" & TxtDataFim.Text & "%' order by CodiCont "
Set TBSQL = Cnn.Execute(CONSULTASQL)
Do Until TBSQL.EOF
Lin = Lin + 1
MSFgrade.Rows = Lin + 1
MSFgrade.TextMatrix(Lin, 0) = TBSQL("CodiCont")
MSFgrade.TextMatrix(Lin, 1) = TBSQL("NomeCont")
MSFgrade.TextMatrix(Lin, 2) = TBSQL("DatNCont")
MSFgrade.TextMatrix(Lin, 3) = TBSQL("IdadCont")
TBSQL.MoveNext
Loop
End Sub
tenta assim:
não precisa do like, tem que colocar # sem aspas simples e o mes tem q ta invertido com o dia
"select CodiCont, NomeCont, DatNCont, IdadCont from TabContatos where DatNCont between #" & format(TxtDataInicio.Text,"mm/dd/yyyy") & "# and #" & format(TxtDataFim.Text,"mm/dd/yyyy") & "# order by CodiCont "
não precisa do like, tem que colocar # sem aspas simples e o mes tem q ta invertido com o dia
Assim não rola, deixa eu explicar: no banco tem a data de nascimento do cliente então esta busta eu estou fazendo por dia e mês para que me retorne as pessoas que fazem aniversario naquele mês.
EX: coloco do txtdatainicio.text 03/12 e no txtdatafim.text 31/12,
não coloco o ano para que venha todos os clientes que fazem aniversario neste intervalo
EX: coloco do txtdatainicio.text 03/12 e no txtdatafim.text 31/12,
não coloco o ano para que venha todos os clientes que fazem aniversario neste intervalo
Olá,
Se vc precisa apenas do mês, pq não usa:
select CodiCont, NomeCont, DatNCont, IdadCont from TabContatos where month(DatNCont)=7
ou se quiser apenas de 15 a 30 de junho
select CodiCont, NomeCont, DatNCont, IdadCont from TabContatos where month(DatNCont)=7 and day(DatNCont)>14 and day(DatNCont)<31
Se vc precisa apenas do mês, pq não usa:
select CodiCont, NomeCont, DatNCont, IdadCont from TabContatos where month(DatNCont)=7
ou se quiser apenas de 15 a 30 de junho
select CodiCont, NomeCont, DatNCont, IdadCont from TabContatos where month(DatNCont)=7 and day(DatNCont)>14 and day(DatNCont)<31
Citação:EDSON escreveu:
Assim não rola, deixa eu explicar: no banco tem a data de nascimento do cliente então esta busta eu estou fazendo por dia e mês para que me retorne as pessoas que fazem aniversario naquele mês.
EX: coloco do txtdatainicio.text 03/12 e no txtdatafim.text 31/12,
não coloco o ano para que venha todos os clientes que fazem aniversario neste intervalo
qual o tipo do campo?
EDSON,
tente assim:
CONSULTASQL = "select CodiCont, NomeCont, DatNCont, IdadCont from TabContatos where Month(DatNCont) between " & Month(TxtDataInicio.Text) & " And " & Month(TxtDataFim.Text) & " order by CodiCont "
assim só sera levado em consideração os meses apresentados nos text box.
um abraço
tente assim:
CONSULTASQL = "select CodiCont, NomeCont, DatNCont, IdadCont from TabContatos where Month(DatNCont) between " & Month(TxtDataInicio.Text) & " And " & Month(TxtDataFim.Text) & " order by CodiCont "
assim só sera levado em consideração os meses apresentados nos text box.
um abraço
Tópico encerrado , respostas não são mais permitidas