ERRO EM BUSCA COM CURINGAS ANSI-92
curingas ANSI-92
Alguem sabe me dizer se a opção Filter de um Objeto Recordset tem limitações de Curingas do tipo ANSI-92 nas expressoes SQL
Porque se eu abrir um recordset com a seguinte clasula Where
Campo like '%P_O%'
obs: - é um curinga q seleciona qualquer letra entre essas especificadas
essa sql funciona perfeitamente
mas eu eu abrir select * from tabela
e depois apenas dar um rs.filter = descricao LIKE '%p_o%'
ele nao me retorna registro nenhum
mais se eu tirar o Curinga _ e somente deixar o Curinga %
ele me retorna os dados
agora isso é um BUG do ADO ou uma LImitação ?
Alguem sabe me dizer se a opção Filter de um Objeto Recordset tem limitações de Curingas do tipo ANSI-92 nas expressoes SQL
Porque se eu abrir um recordset com a seguinte clasula Where
Campo like '%P_O%'
obs: - é um curinga q seleciona qualquer letra entre essas especificadas
essa sql funciona perfeitamente
mas eu eu abrir select * from tabela
e depois apenas dar um rs.filter = descricao LIKE '%p_o%'
ele nao me retorna registro nenhum
mais se eu tirar o Curinga _ e somente deixar o Curinga %
ele me retorna os dados
agora isso é um BUG do ADO ou uma LImitação ?
ai clayton espero que te ajude este codigo
rs.Filter = Letras("á", "City")'funcão é so mandar a letra e o campo do banco
Function Letras(Letra As String, Campo As String)
Dim Consulta As String
Dim acentos As String
Dim sacentos As String
Dim I As Integer
Dim X As Integer
Dim Var() As String
acentos = "áÃóúéà ¤à ¯à ¶à ¼à «à  à ¬à ²à ¹à ¨ãõà ¢à ®à 'à »êç"
sacentos = "aioueaioueaioueaoaiouec"
Resultado = Letra
For I = 1 To Len(acentos)
Resultado = Replace(Resultado, Mid(acentos, I, 1), Mid(sacentos, I, 1))
Next
Letras = Replace(Resultado, "a", "a,á,à  ,ã,à ¢,à ¤")
Letras = Replace(Letras, "e", "e,é,à ¨,ê,à «")
Letras = Replace(Letras, "i", "i,Ã,à ¬,à ®,à ¯")
Letras = Replace(Letras, "o", "o,ó,à ²,õ,à ',à ¶")
Letras = Replace(Letras, "u", "u,ú,à ¹,à »,à ¼")
Letras = Replace(Letras, "c", "c,ç")
Var = Split(Letras, ",")
Consulta = ""
For X = 0 To UBound(Var)
Consulta = Consulta & Campo & " LIKE '%" & Var(X) & "%' OR "
Next
Consulta = Left(Consulta, Len(Consulta) - 3)
Letras = Consulta
End Function
valeu
mas a funcao nao retorna um coisa mais exata
pois se eu procuro "pão de milho" ele me retorna muita coisa nada a haver
DESCRICAO LIKE '%pa%' OR DESCRICAO LIKE '%á%' OR DESCRICAO LIKE '%à  %' OR DESCRICAO LIKE '%ã%' OR DESCRICAO LIKE '%à ¢%' OR DESCRICAO LIKE '%à ¤o%' OR DESCRICAO LIKE '%ó%' OR DESCRICAO LIKE '%à ²%' OR DESCRICAO LIKE '%õ%' OR DESCRICAO LIKE '%à '%' OR DESCRICAO LIKE '%à ¶ de%' OR DESCRICAO LIKE '%é%' OR DESCRICAO LIKE '%à ¨%' OR DESCRICAO LIKE '%ê%' OR DESCRICAO LIKE '%à « mi%' OR DESCRICAO LIKE '%Ã%' OR DESCRICAO LIKE '%à ¬%' OR DESCRICAO LIKE '%à ®%' OR DESCRICAO LIKE '%à ¯lho%' OR DESCRICAO LIKE '%ó%' OR DESCRICAO LIKE '%à ²%' OR DESCRICAO LIKE '%õ%' OR DESCRICAO LIKE '%à '%' OR DESCRICAO LIKE '%à ¶%'
ele ira pesquisa muita coisa q não era pra ser
mas a funcao nao retorna um coisa mais exata
pois se eu procuro "pão de milho" ele me retorna muita coisa nada a haver
DESCRICAO LIKE '%pa%' OR DESCRICAO LIKE '%á%' OR DESCRICAO LIKE '%à  %' OR DESCRICAO LIKE '%ã%' OR DESCRICAO LIKE '%à ¢%' OR DESCRICAO LIKE '%à ¤o%' OR DESCRICAO LIKE '%ó%' OR DESCRICAO LIKE '%à ²%' OR DESCRICAO LIKE '%õ%' OR DESCRICAO LIKE '%à '%' OR DESCRICAO LIKE '%à ¶ de%' OR DESCRICAO LIKE '%é%' OR DESCRICAO LIKE '%à ¨%' OR DESCRICAO LIKE '%ê%' OR DESCRICAO LIKE '%à « mi%' OR DESCRICAO LIKE '%Ã%' OR DESCRICAO LIKE '%à ¬%' OR DESCRICAO LIKE '%à ®%' OR DESCRICAO LIKE '%à ¯lho%' OR DESCRICAO LIKE '%ó%' OR DESCRICAO LIKE '%à ²%' OR DESCRICAO LIKE '%õ%' OR DESCRICAO LIKE '%à '%' OR DESCRICAO LIKE '%à ¶%'
ele ira pesquisa muita coisa q não era pra ser
é que tinha pensado so em uma letra para uma ou mais palavras complica muito 

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