PROBLEMAS COM DATA NO ACCESS E VB.NET

EDUARDONICE 16/01/2014 14:37:48
#433166
Boa tarde

Não tenho muita experiência com .net e não consigo resolver um problema de pesquisa com datas no access. Está dando a mensagem de tipo incompatível. é o seguinte:

Tenho um Form de lançamento de despesas que grava no Access os seguintes Campos:
IdDes = Id da Despesa (Numérico)
DeReDes = Descrição Resumida da Despesa (String)
DtVeDes = Data de Vencimento (Data/Hora)
VlDeDes = Valor da Despesa (Unidade Monetária)

Neste form faço o seguinte Insert:
cmdCommand.Text=[Ô]Insert into DESPESAS (IDDES, DEREDES, DTVEDES, VLDEDES) values ( [Ô]_
& txtIdDes.Text & [Ô], [ô][Ô] & txtDeReDes.Text & [Ô][ô], [ô][Ô] & mskDtVeDes.Text & [Ô][ô], [ô][Ô] & txtVlDeDes.Text & [Ô][ô]);[Ô]

Este Insert faz com que no Access os registros fiquem assim:
1 IPVA 14/01/2014 923,90
2 ESCOLA 16/01/2014 780,00

Em um outro Form, peço a data inicial e a data final para fazer um select do que estiver dentro do intervalo:
[Ô]Select * from DESPESAS where DTVEDES >= mskDtInicial.Text and DTVEDES <= mskDtFinal.Text[Ô] ou seja,
[Ô]Select * from DESPESAS where DTVEDES >= [ô]01/01/2014[ô] AND DTVEDES <= [ô]20/01/2014[ô];[Ô]

Quando executo o comando acima, acaba dando erro de tipo de dados incompatível. Já tentei colocando o caracter [Ô]#[Ô] no inicio e final da data, já mudei o select para between, mas continuo com o problema.

Como faço para deixar as datas compatíveis?
OMAR2011 16/01/2014 16:28:26
#433172
Resposta escolhida
Vai aparecer alguns entendidos em datas.
Tente Assim.

[Ô]Select * from DESPESAS where DTVEDES >=Cdate( [ô]01/01/2014[ô]) AND DTVEDES <= Cdate([ô]20/01/2014[ô]);[Ô]
NILSONTRES 16/01/2014 17:24:52
#433184
Eu nunca consegui recuperar registros por data no access sem utilizar o BetWeen.

Citação:

[Ô]Select * from DESPESAS where DTVEDES >=Cdate( [ô]01/01/2014[ô]) AND DTVEDES <= Cdate([ô]20/01/2014[ô]);[Ô]


Isso eu utilizo no Mysql.

OMAR2011 16/01/2014 17:29:22
#433185
Pois fiz um teste usando Access2007,Datahora.

da1 = New OleDbDataAdapter([Ô]Select * from Times where Data between Cdate([ô]01/01/2014[ô]) and Cdate([ô]20/02/2014[ô])[Ô], con)
da1 = New OleDbDataAdapter([Ô]Select * from Times where Data >= Cdate([ô]01/01/2014[ô]) AND Data <= Cdate([ô]20/01/2014[ô]);[Ô],con)
Deste jeito e deu certo.
GUIMORAES 16/01/2014 17:55:37
#433187
Use parâmetros para executar suas querys, resolve o seu problema!
As vezes é necessário formatar a data, isto pode variar de banco de dados.
EDUARDONICE 16/01/2014 18:15:05
#433189
Obrigado pessoal, o Cdate resolveu o problema.

Grato a todos

Obrigado
Tópico encerrado , respostas não são mais permitidas