PESQUISAR INTERVALO DE DATAS COM ACCESS
Bom Dia pessoal eh o seguinte tenho um form que add os dados no banco e um dos dados e a data, no outro form coloquei dois DTPicker e um Botão pesquisar e um MSFlexGrid e queria que quando eu colocasse as data e clicasse no botão aparecesse o dados com os intervalos da datas escolhidas....
meu cod esta assim no botão.
Private Sub cmdpesq_Click()
If dtp_from = [Ô][Ô] And dtp_until = [Ô][Ô] Then
MSFlexGrid1.Enabled = False
vdata = [Ô][Ô]
vdespesa = [Ô][Ô]
vtipo = [Ô][Ô]
vvalorrec = [Ô][Ô]
vvalorpag = [Ô][Ô]
vobs = [Ô][Ô]
Else
MSFlexGrid1.Enabled = True
End If
If dtp_from = [Ô][Ô] And dtp_until = [Ô][Ô] Then
MSFlexGrid1.Rows = 2
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 0) = [Ô][Ô]
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 1) = [Ô][Ô]
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 2) = [Ô][Ô]
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 3) = [Ô][Ô]
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 4) = [Ô][Ô]
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 5) = [Ô][Ô]
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 6) = [Ô][Ô]
MSFlexGrid1.Rows = MSFlexGrid1.Rows - 1
Me.Caption = [Ô]Buscar Cliente[Ô]
Exit Sub
End If
MSFlexGrid1.Rows = 2
Connect
RS.Open [Ô]SELECT * FROM tblDespesas WHERE DATA like [ô][ô]%[Ô] & dtp_from & [Ô]%[ô]And[ô]%[Ô] & dtp_until & [Ô]%[ô][Ô], CON, adOpenStatic, adLockOptimistic
Do While Not RS.EOF
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 0) = RS.Fields(0).Value
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 1) = RS.Fields(1).Value
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 2) = RS.Fields(2).Value
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 3) = RS.Fields(3).Value
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 4) = RS.Fields(4).Value
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 5) = RS.Fields(5).Value
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 6) = RS.Fields(6).Value
MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1
RS.MoveNext
Loop
MSFlexGrid1.Rows = MSFlexGrid1.Rows - 1
regContador = CStr(RS.RecordCount)
If MSFlexGrid1.Rows = 2 Then
Me.Caption = [Ô]Buscar Cliente - [Ô] & regContador & [Ô] clientes encontrados[Ô]
Else
Me.Caption = [Ô]Buscar Cliente - [Ô] & regContador & [Ô] clientes encontrados[Ô]
End If
Disconnect
End Sub
Porem assim ele pesquisa apenas pela primeira data do dtp_from e não leva em consideração o segundo.
Quem puder me ajudar....
obrigado desde já pela força
meu cod esta assim no botão.
Private Sub cmdpesq_Click()
If dtp_from = [Ô][Ô] And dtp_until = [Ô][Ô] Then
MSFlexGrid1.Enabled = False
vdata = [Ô][Ô]
vdespesa = [Ô][Ô]
vtipo = [Ô][Ô]
vvalorrec = [Ô][Ô]
vvalorpag = [Ô][Ô]
vobs = [Ô][Ô]
Else
MSFlexGrid1.Enabled = True
End If
If dtp_from = [Ô][Ô] And dtp_until = [Ô][Ô] Then
MSFlexGrid1.Rows = 2
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 0) = [Ô][Ô]
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 1) = [Ô][Ô]
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 2) = [Ô][Ô]
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 3) = [Ô][Ô]
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 4) = [Ô][Ô]
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 5) = [Ô][Ô]
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 6) = [Ô][Ô]
MSFlexGrid1.Rows = MSFlexGrid1.Rows - 1
Me.Caption = [Ô]Buscar Cliente[Ô]
Exit Sub
End If
MSFlexGrid1.Rows = 2
Connect
RS.Open [Ô]SELECT * FROM tblDespesas WHERE DATA like [ô][ô]%[Ô] & dtp_from & [Ô]%[ô]And[ô]%[Ô] & dtp_until & [Ô]%[ô][Ô], CON, adOpenStatic, adLockOptimistic
Do While Not RS.EOF
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 0) = RS.Fields(0).Value
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 1) = RS.Fields(1).Value
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 2) = RS.Fields(2).Value
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 3) = RS.Fields(3).Value
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 4) = RS.Fields(4).Value
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 5) = RS.Fields(5).Value
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 6) = RS.Fields(6).Value
MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1
RS.MoveNext
Loop
MSFlexGrid1.Rows = MSFlexGrid1.Rows - 1
regContador = CStr(RS.RecordCount)
If MSFlexGrid1.Rows = 2 Then
Me.Caption = [Ô]Buscar Cliente - [Ô] & regContador & [Ô] clientes encontrados[Ô]
Else
Me.Caption = [Ô]Buscar Cliente - [Ô] & regContador & [Ô] clientes encontrados[Ô]
End If
Disconnect
End Sub
Porem assim ele pesquisa apenas pela primeira data do dtp_from e não leva em consideração o segundo.
Quem puder me ajudar....
obrigado desde já pela força
deixa eu ver se entendi
vc quer fazer uma pesquisa em que os dados estejam entre data inicial e data final?
se sim utilize o método filter
a string é a seguinte [Ô]fieldDATA => [ô] [Ô] & txtdatainicial & [Ô] [ô] and fieldDATA =< [ô] [Ô] & txtdatafinal & [Ô] [ô] [Ô]
esse método eu utilizo mais com o dataenvironment mas creio q vc possa adaptar
blz!
vc quer fazer uma pesquisa em que os dados estejam entre data inicial e data final?
se sim utilize o método filter
a string é a seguinte [Ô]fieldDATA => [ô] [Ô] & txtdatainicial & [Ô] [ô] and fieldDATA =< [ô] [Ô] & txtdatafinal & [Ô] [ô] [Ô]
esse método eu utilizo mais com o dataenvironment mas creio q vc possa adaptar
blz!
tentei com o seu codigo e ele da erro de sintaxe no AND
Tente assim.
RS.Open [Ô]SELECT * FROM tblDespesas WHERE DATA BETWEEN [ô][Ô] & format(dtp_from,[Ô]dd/mm/yyyy[Ô]) & [Ô][ô] And [ô][Ô] & format(dtp_until,[Ô]dd/mm/yyyy[Ô]) & [Ô][ô][Ô], CON, adOpenStatic, adLockOptimistic
RS.Open [Ô]SELECT * FROM tblDespesas WHERE DATA BETWEEN [ô][Ô] & format(dtp_from,[Ô]dd/mm/yyyy[Ô]) & [Ô][ô] And [ô][Ô] & format(dtp_until,[Ô]dd/mm/yyyy[Ô]) & [Ô][ô][Ô], CON, adOpenStatic, adLockOptimistic
OMAR2011
Me ajudou muito e deu certo porem ele não pesquisa o intervalo das datas, mas sim soh as duas datas selecionadas....
exemplo....31/07/2013 e 02/08/2013 ele acha os dados dessas duas datas mas o dia 01/08/2013 não aparece....
VLW
Me ajudou muito e deu certo porem ele não pesquisa o intervalo das datas, mas sim soh as duas datas selecionadas....
exemplo....31/07/2013 e 02/08/2013 ele acha os dados dessas duas datas mas o dia 01/08/2013 não aparece....
VLW
Tente isso:
[Ô]SELECT * FROM tblDespesas WHERE Format(DATA,[ô]MM/dd/yyyy[ô]) BETWEEN [ô][Ô] & Format$(dtp_from,[Ô]MM/dd/yyyy[Ô]) & [Ô][ô] And [ô][Ô] & Format$(dtp_until,[Ô]MM/dd/yyyy[Ô]) & [Ô][ô][Ô]
Normalmente, em Access o campo data armazena Data e Hora, com isso é preciso formatar o campo, caso contrario vai dar zica em relação a hora. Ou seja, vc teria que especificar que está pesquisando entre as 00:00hrs de um dia até as 23:59hrs do outro dia. Formatando o campo, vc evita a necessidade de especificar isso.
[Ô]SELECT * FROM tblDespesas WHERE Format(DATA,[ô]MM/dd/yyyy[ô]) BETWEEN [ô][Ô] & Format$(dtp_from,[Ô]MM/dd/yyyy[Ô]) & [Ô][ô] And [ô][Ô] & Format$(dtp_until,[Ô]MM/dd/yyyy[Ô]) & [Ô][ô][Ô]
Normalmente, em Access o campo data armazena Data e Hora, com isso é preciso formatar o campo, caso contrario vai dar zica em relação a hora. Ou seja, vc teria que especificar que está pesquisando entre as 00:00hrs de um dia até as 23:59hrs do outro dia. Formatando o campo, vc evita a necessidade de especificar isso.
agora deu certo valeu mesmo SAMUKA
Tópico encerrado , respostas não são mais permitidas