Pessoal,
Estou tentando uma busca interna por mais de uma palavra. O código está funcionando quando roda em um Oracle mas, quando uso o Access, zica. Alguém tem alguma idéia do que pode ser?
Segue:
var_nome = SESSION("BUSCA")
strTexto = Trim(var_nome)
IF strTexto <> "" THEN
strChr = (" ")
iNumChr = 0
For iCont = 1 To Len(Trim(strTexto))
If Mid(strTexto, iCont, 1) = strChr Then
iNumChr = iNumChr + 1
End If
Next
i = 0
VarSQL = " "
strbusca = Split(Trim(var_nome)," ")
For i = 0 To iNumChr
VarSQL = VarSQL & " (('%" & strbusca(i) & "%' = "") OR ('%"& strbusca(i) &"%' <> "" AND CADB_NM_DESCRICAO LIKE (TRANSLATE(UPPER('%"& strbusca(i) &"%'),'ãÃáÁÀÅåàÂâÄäõÕóÓÒòÔôÖöéÉÈèëËÊêíÍÌìïÏÎîÇçÚÙÛÜüúùû','aAaAAAaaAaAaoOoOOoOoOoeEEeeEEeiIIiiIIiCcUUUUuuuu'))))"
Next
END IF
Valeu!
Busca Por Mais De Uma Palavra
Started By DSoares, 12/12/2006, 17:41
4 replies to this topic
#1
Posted 12/12/2006, 17:41
#2
Posted 12/12/2006, 20:07
Provavelmente o Access não suporta a função UPPER e/ou a função TRANSLATE.
Como não sei para que elas servem não sei como resolver seu problema.
[]s
Como não sei para que elas servem não sei como resolver seu problema.
[]s
#3
Posted 13/12/2006, 15:49
Provavelmente o Access não suporta a função UPPER e/ou a função TRANSLATE.
Como não sei para que elas servem não sei como resolver seu problema.
[]s
Siola,
A função faz com que todos os conteúdos sejam convertidos para caracteres maiúsculos (UPPER) pra depois serem comparados.
Também não sei se é suportado, mas vou verificar.
Obrigado.
#4
Posted 18/12/2006, 17:15
Camarada,
TRANSLATE só no Oracle.
Já o dve ser trocado por UCase(campo).
TRANSLATE só no Oracle.
Já o dve ser trocado por UCase(campo).
#5
Posted 18/12/2006, 19:30
Jothaz,
Valeu pela dica. Vou testar!
[ ]´s
Valeu pela dica. Vou testar!
[ ]´s
3 user(s) are reading this topic
0 membro(s), 3 visitante(s) e 0 membros anônimo(s)










