BETWEEN... HELP-ME

XWILLIANSS 02/09/2009 02:46:48
#321663
Olá,
O que há de errado neste código abaixo que quando pesquiso entre duas datas diz que não existe e sendo que no banco de dados ela existe.
Tipo assim: 28/08/2009 e 02/02/2009 , o VB diz que não existe mas, 28/08/2009 e 31/08/2009 diz que existe. Não estou entendendo o porque. Alguem pode me ajudar a fazer uma pesquisa utilizando o BETWEEN entre duas datas qe funcione?

Dim mData1 As Date
Dim mData2 As Date

Set tb1 = New Recordset
If txtData1 <> [Ô]__/__/____[Ô] Or txtData2 <> [Ô]__/__/____[Ô] Then
Select Case Combo1
Case Is = [Ô]DATA ENTRADA[Ô]
mData1 = CDate(txtData1)
mData2 = CDate(txtData2)
tb1.Open [Ô]select selecione as [ô]SELECIONE[ô],codigo as [ô]CODIGO[ô],datacadastro as [ô]DAT.ENT[ô],nomecliente as [ô]CLIENTE[ô],cpf as [ô]CPF[ô],nomebanco as [ô]BANCO[ô],valorcredito as [ô]CRéDITO R$[ô],prazo as [ô]PRAZO[ô],comissao as [ô]COMISSÃO %[ô],valorcomissao as [ô]COMISSÃO R$[ô],nomeproduto as [ô]PRODUTO[ô],status as [ô]SITUAÇÃO[ô],datapagcorretor as [ô]DATA PAGAMENTO[ô],operador as [ô]OPERADOR[ô] from clientes WHERE (datacadastro BETWEEN [ô][Ô] & Format(mData1, [Ô]dd/mm/yyyy[Ô]) & [Ô][ô] AND [ô][Ô] & Format(mData2, [Ô]dd/mm/yyyy[Ô]) & [Ô][ô])[Ô], DB, adOpenStatic, adLockReadOnly
Case Is = [Ô]DATA PAGAMENTO[Ô]
tb1.Open [Ô]select selecione as [ô]SELECIONE[ô],codigo as [ô]CODIGO[ô],datacadastro as [ô]DAT.ENT[ô],nomecliente as [ô]CLIENTE[ô],cpf as [ô]CPF[ô],nomebanco as [ô]BANCO[ô],valorcredito as [ô]CRéDITO R$[ô],prazo as [ô]PRAZO[ô],comissao as [ô]COMISSÃO %[ô],valorcomissao as [ô]COMISSÃO R$[ô],nomeproduto as [ô]PRODUTO[ô],status as [ô]SITUAÇÃO[ô],datapagcorretor as [ô]DATA PAGAMENTO[ô],operador as [ô]OPERADOR[ô] from clientes WHERE (datapagcorretor BETWEEN [ô][Ô] & FormatDateTime(txtData1, vbShortDate) & [Ô][ô] AND [ô][Ô] & FormatDateTime(txtData2, vbShortDate) & [Ô][ô])[Ô], DB, adOpenStatic, adLockReadOnly
End Select
End If
If tb1.RecordCount > 0 Then
Set Grid1.DataSource = tb1
Else
MsgBox [Ô]Não há dados![Ô], vbCritical, Me.Caption
Exit Sub
End If
RICART 02/09/2009 07:55:27
#321665
Resposta escolhida
Passe a data para o formato MM/dd/yyyy e se certifique de queo campo no bd esteja como data.
LLAIA 02/09/2009 07:59:42
#321666
é exatamente como o RICART disse, mas só pra evitar ambiguidade, vc tem precisa fazer só isso aqui na cláusulia BETWEEN:

BETWEEN [ô][Ô] & Format(mData1, [Ô]mm/dd/yyyy[Ô]) & [Ô][ô] AND [ô][Ô] & Format(mData2, [Ô]mm/dd/yyyy[Ô]) & [Ô][ô])[Ô]
MARCELO.TREZE 02/09/2009 09:11:07
#321671
Qual é o Banco de dados?
XWILLIANSS 02/09/2009 20:00:59
#321751
[txt-size=3]Galera muito obrigado a todos, conseguir resolver o problema... foi isso mesmo que o RICART falou, apenas mudei o tipo do campo de VARCHAR para DATETIME no MySQL. Valeu!!![/txt-size]
Tópico encerrado , respostas não são mais permitidas