FILTRAR DATAS NO MYSQL COM BETWEEN E LIKE
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
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
não conheco mysql , mas olha como esta gravado no banco, se la esta como data/hora.
as vezes acontece isto.
espero ter ajudado
as vezes acontece isto.
espero ter ajudado
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.
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.
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
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
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
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