Trabalhando com datas no Visual Basic

Boa tarde Jack…

Seguinte, estou tentando trabalhar com uma consulta (em SQL) no Visual Basic 6.0. A idéia é filtrar na tabela de dados do Access os registros que se enquandrem nos seguintes critérios:

cod_venda = 1

data_venda < 10/12/2006 

Quando uso a cláusula betewen funciona perfeito (pra intervalos de datas), mas quando tento fazer a instrução abaixo, ele não dá erro, mas tb não filtra nada. O que estou fazendo de errado:

Dim ate As Date

ate = Format(Date, “dd/mm/yyyy”)

Data1.RecordSource = “select * from tab_vendas where cod_venda=1 and data_venda <" & Format(ate, "dd/mm/yyyy")

Data1.Refresh 

Bem, para fixar o formato da tada (dd/mm/yyyy) use o “#” durante a consulta, isso deverá resolver o problema (conforme exemplo abaixo). Note que se você já armazenou na variável “ate” a data no formato de “dd/mm/yyyy”, não precisa repetir isso na instrução em SQL:

ate = Format(Date, “dd/mm/yyyy”)

Data1.RecordSource = “select * from tab_vendas where cod_venda=1 and data_venda <#" + Str(ate) + "#"

Data1.Refresh

Para saber mais sobre como trabalhar (cálculos e formas de armazenamento) com datas no Visual Basic, visite os seguintes posts:

http://www.macoratti.net/vb_datas.htm

http://www.macoratti.net/datas2.htm

http://www.macoratti.net/vbdatas1.htm