BETWEEN... HELP-ME
                    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?
            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
                    Passe a data para o formato MM/dd/yyyy e se certifique de queo campo no bd esteja como data.
                
            
                    é 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[Ô]) & [Ô][ô])[Ô]
            BETWEEN [ô][Ô] & Format(mData1, [Ô]mm/dd/yyyy[Ô]) & [Ô][ô] AND [ô][Ô] & Format(mData2, [Ô]mm/dd/yyyy[Ô]) & [Ô][ô])[Ô]
                    Qual é o Banco de dados?
                
            
                    [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
                    
                


