FILTRAR DATAS NO MYSQL COM BETWEEN E LIKE

JLSMA 22/04/2010 10:10:28
#339914
BOM DIA PESSOAL, estou tentando efetuar o filtro de registros em Mysql com codigo abaixo, mas retorna vazio a consulta, onde deverá estar o erro,

If CmbFiltro = [Ô]SEGURADORA[Ô] Then
Set RS_FLEX = New ADODB.Recordset
RS_FLEX.CursorLocation = adUseClient
RS_FLEX.Open [Ô]Select Cod,Data, segurado, Bens, seguradora, Imp_Seg, Vistoriador from Seguros where SEGURADORA like [ô][Ô] & CmbFiltrar & [Ô][ô] and data BetWeen [Ô] & Format$(TxtPiData, [Ô]dd/mm/yyyy[Ô]) & [Ô] And [Ô] & Format$(TxtPfData, [Ô]dd/mm/yyyy[Ô]) & [Ô] ORDER BY data[Ô], MyDB, adOpenStatic, adLockOptimistic, adCmdText
CarregaFlex2

fiz alteração na formatação da data yyyy/mm/dd, yyyymmdd, mas ainda assim não ocorre nenhum erro mas retorna o registros
ENDIF
ERIVELTONVGA 22/04/2010 10:24:25
#339915
não conheco mysql , mas olha como esta gravado no banco, se la esta como data/hora.

as vezes acontece isto.

espero ter ajudado
EDERMIR 22/04/2010 10:26:00
#339916
Resposta escolhida
Em FIREBIRD é necessário colocar as datas entre ASPAS SIMPLES. Talvez o formato seja diferente. Tente:

data BetWeen [ô][Ô] & Format$(TxtPiData, [Ô]mm/dd/yyyy[Ô]) & [Ô][ô] And [ô][Ô] & Format$(TxtPfData, [Ô]mm/dd/yyyy[Ô]) & [Ô][ô] ORDER

Veja que coloquei as ASPAS SIMPLES e mudei o FORMATO da data.
NETMANIA 22/04/2010 10:56:39
#339918
Tente usar o comando abaixo (já usando o sistema de formatação de data do MySQL).

Outro fator que acho que pode estar dando erro na sua consulta. No SQL original, você estava pegando o nome da seguradora através da variável [txt-color=#e80000]CmbFiltrar[/txt-color] e no if você está usando a variável [txt-color=#0000f0]CmbFiltro[/txt-color]. Será que este não poderia ser o motivo do erro também?

If (CmbFiltro = [Ô]SEGURADORA[Ô]) Then

[ô]Declaração das variáveis
DIM stSql AS STRING

[ô]Declaração dos objetos
Set RS_FLEX = New ADODB.Recordset

[ô]Comando SQL responsável por retornar os dados
stSql = [Ô]SELECT Cod, Data, segurado, Bens, seguradora, Imp_Seg, Vistoriador FROM Seguros WHERE SEGURADORA = [ô][ô][Ô] & CmbFiltro & [Ô][ô][ô] AND data BETWEEN DATE_FORMAT([Ô]& TxtPiData &[Ô], [ô]%Y/%m/%d[ô]) AND & DATE_FORMAT([Ô]& TxtPfData &[Ô], [ô]%Y/%m/%d[ô]) ORDER BY data[Ô]

[ô]Executa consulta
WITH RS_FLEX
.CursorLocation = adUseClient
.Open stSql, MyDB, adOpenStatic, adLockOptimistic, adCmdText
END WITH

[ô]Carrega o FlexGrid
CarregaFlex2

END IF
JLSMA 22/04/2010 11:37:05
#339926
pessoal deu certo aki trocando o # por [ô] conforme indicação

Set RS_FLEX = New ADODB.Recordset
RS_FLEX.CursorLocation = adUseClient
RS_FLEX.Open [Ô]Select Cod,Data, segurado, Bens, seguradora, Imp_Seg, Vistoriador from Seguros where SEGURADORA like [ô][Ô] & CmbFiltrar & [Ô][ô] and data BetWeen [ô][Ô] & Format$(TxtPiData, [Ô]yyyy/mm/dd[Ô]) & [Ô][ô] And [ô][Ô] & Format$(TxtPfData, [Ô]yyyy/mm/dd[Ô]) & [Ô][ô] ORDER BY data[Ô], MyDB, adOpenStatic, adLockOptimistic, adCmdText
CarregaFlex2

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