CONSULTAR PERIODO DE DATA NO VBA/EXCEL
Pessoal,
estou tentando fazer uma pesquisa utilizando o código abaixo, mas não está dando certo o resultado sempre mostra toda a base de registros:
Dim i As Integer
Dim DATA_INICIAL As String
Dim DATA_FINAL As String
Set BANCO = OpenDatabase(ThisWorkbook.Path & [Ô]\[Ô] & ThisWorkbook.Name, False, False, [Ô]Excel 8.0[Ô])
DATA_INICIAL = Format(FORM_TELA.DATA_INICIAL.Value, [Ô]dd/mm/YYYY[Ô])
DATA_FINAL = Format(FORM_TELA.DATA_FINAL.Value, [Ô]dd/mm/YYYY[Ô])
Set TABELA = BANCO.OpenRecordset([Ô]select * from [BD_LANCAMENTOS$] where VENCIMENTO >= [ô][Ô] & DATA_INICIAL & [Ô][ô] and vencimento <=[ô][Ô] & DATA_FINAL & [Ô][ô] [Ô])
FORM_TELA.ListBOX_BDLANCAMENTOS.Clear
Do Until TABELA.EOF
FORM_TELA.ListBOX_BDLANCAMENTOS.AddItem TABELA([Ô]COD_GERAL[Ô])
FORM_TELA.ListBOX_BDLANCAMENTOS.List(i, 1) = TABELA([Ô]DATA[Ô])
FORM_TELA.ListBOX_BDLANCAMENTOS.List(i, 2) = TABELA([Ô]CONTA[Ô])
FORM_TELA.ListBOX_BDLANCAMENTOS.List(i, 3) = TABELA([Ô]DESCRICAO[Ô])
FORM_TELA.ListBOX_BDLANCAMENTOS.List(i, 4) = TABELA([Ô]PARCELA[Ô]) & [Ô]/[Ô] & TABELA([Ô]TOTAL_PARCELAS[Ô])
FORM_TELA.ListBOX_BDLANCAMENTOS.List(i, 5) = TABELA([Ô]F_PG[Ô])
FORM_TELA.ListBOX_BDLANCAMENTOS.List(i, 6) = TABELA([Ô]VENCIMENTO[Ô])
FORM_TELA.ListBOX_BDLANCAMENTOS.List(i, 7) = Format(TABELA([Ô]RECEITAS[Ô]), [Ô]CURRENCY[Ô])
FORM_TELA.ListBOX_BDLANCAMENTOS.List(i, 8) = Format(TABELA([Ô]DESPESAS[Ô]), [Ô]CURRENCY[Ô])
FORM_TELA.ListBOX_BDLANCAMENTOS.List(i, 9) = TABELA([Ô]EFETIVADO[Ô])
i = i + 1
TABELA.MoveNext
Loop
estou tentando fazer uma pesquisa utilizando o código abaixo, mas não está dando certo o resultado sempre mostra toda a base de registros:
Dim i As Integer
Dim DATA_INICIAL As String
Dim DATA_FINAL As String
Set BANCO = OpenDatabase(ThisWorkbook.Path & [Ô]\[Ô] & ThisWorkbook.Name, False, False, [Ô]Excel 8.0[Ô])
DATA_INICIAL = Format(FORM_TELA.DATA_INICIAL.Value, [Ô]dd/mm/YYYY[Ô])
DATA_FINAL = Format(FORM_TELA.DATA_FINAL.Value, [Ô]dd/mm/YYYY[Ô])
Set TABELA = BANCO.OpenRecordset([Ô]select * from [BD_LANCAMENTOS$] where VENCIMENTO >= [ô][Ô] & DATA_INICIAL & [Ô][ô] and vencimento <=[ô][Ô] & DATA_FINAL & [Ô][ô] [Ô])
FORM_TELA.ListBOX_BDLANCAMENTOS.Clear
Do Until TABELA.EOF
FORM_TELA.ListBOX_BDLANCAMENTOS.AddItem TABELA([Ô]COD_GERAL[Ô])
FORM_TELA.ListBOX_BDLANCAMENTOS.List(i, 1) = TABELA([Ô]DATA[Ô])
FORM_TELA.ListBOX_BDLANCAMENTOS.List(i, 2) = TABELA([Ô]CONTA[Ô])
FORM_TELA.ListBOX_BDLANCAMENTOS.List(i, 3) = TABELA([Ô]DESCRICAO[Ô])
FORM_TELA.ListBOX_BDLANCAMENTOS.List(i, 4) = TABELA([Ô]PARCELA[Ô]) & [Ô]/[Ô] & TABELA([Ô]TOTAL_PARCELAS[Ô])
FORM_TELA.ListBOX_BDLANCAMENTOS.List(i, 5) = TABELA([Ô]F_PG[Ô])
FORM_TELA.ListBOX_BDLANCAMENTOS.List(i, 6) = TABELA([Ô]VENCIMENTO[Ô])
FORM_TELA.ListBOX_BDLANCAMENTOS.List(i, 7) = Format(TABELA([Ô]RECEITAS[Ô]), [Ô]CURRENCY[Ô])
FORM_TELA.ListBOX_BDLANCAMENTOS.List(i, 8) = Format(TABELA([Ô]DESPESAS[Ô]), [Ô]CURRENCY[Ô])
FORM_TELA.ListBOX_BDLANCAMENTOS.List(i, 9) = TABELA([Ô]EFETIVADO[Ô])
i = i + 1
TABELA.MoveNext
Loop
fi.. tente mudar o criterio colocando assim..
Set TABELA = BANCO.OpenRecordset([Ô]select * from [BD_LANCAMENTOS$] where VENCIMENTO between #[Ô] & Format(DATA_INICIAL, [Ô]mm/dd/yyyy[Ô]) & [Ô]# and #[Ô] & Format(DATA_FINAL, [Ô]mm/dd/yyyy[Ô]) & [Ô]#[Ô]
ha.. faltou fechar o select
Set TABELA = BANCO.OpenRecordset([Ô]select * from [BD_LANCAMENTOS$] where VENCIMENTO between #[Ô] & Format(DATA_INICIAL, [Ô]mm/dd/yyyy[Ô]) & [Ô]# and #[Ô] & Format(DATA_FINAL, [Ô]mm/dd/yyyy[Ô]) & [Ô]#)[Ô]
Set TABELA = BANCO.OpenRecordset([Ô]select * from [BD_LANCAMENTOS$] where VENCIMENTO between #[Ô] & Format(DATA_INICIAL, [Ô]mm/dd/yyyy[Ô]) & [Ô]# and #[Ô] & Format(DATA_FINAL, [Ô]mm/dd/yyyy[Ô]) & [Ô]#)[Ô]
Em VBA eu uso assim, é só adaptar:
TABELA.Open [Ô]Select * From [BD_LANCAMENTOS$] GROUP BY Data,Dia,Feriado Having Data BETWEEN #[Ô] & Format(DATA_INICIAL, [Ô]MM/DD/YYYY[Ô]) & [Ô]# AND #[Ô] & Format(DATA_FINAL, [Ô]MM/DD/YYYY[Ô]) & [Ô]# ORDER BY Data[Ô], BANCO, adOpenKeyset, adLockOptimistic
TABELA.Open [Ô]Select * From [BD_LANCAMENTOS$] GROUP BY Data,Dia,Feriado Having Data BETWEEN #[Ô] & Format(DATA_INICIAL, [Ô]MM/DD/YYYY[Ô]) & [Ô]# AND #[Ô] & Format(DATA_FINAL, [Ô]MM/DD/YYYY[Ô]) & [Ô]# ORDER BY Data[Ô], BANCO, adOpenKeyset, adLockOptimistic
Valeu pessoal pelas dicas, consegui utilizando o código do XXANGELSXXX.
entao finalize o topico e o pontue.. rs. abraço!
Tópico encerrado , respostas não são mais permitidas