CONSULTA SQL COM E SEM ACENTOS NO ACESS VIA ADO

DELLAMARE 02/12/2010 12:23:24
#358628
Bom Dia!!

Estou utilizando VB6 com Acess

Estou com um problema, quando vou consultar registros no Acess utilizando SQL via ADO.
O problema é com Acentos Ex:
Vou consultar o nome: João
No Banco esta como: João
o problema é que quando consulto: Joao , o registro não aparece...
tem como fazer esta consulta ignorando os acentos via SQL ADO..

Public Function SQL(strparsql As String) As Variant
On Error GoTo Err
Dim RS_TMP As ADODB.Recordset
Set RS_TMP = New ADODB.Recordset

RS_TMP.Open strparsql, VG_CNX [ô] VG_CNX está é minha variável de conexão global.
If Not RS_TMP.EOF Then
SQL = [Ô][Ô] & RS_TMP(0) [ô]SQL retorna a consulta
End If
If RS_TMP.state = adStateOpen Then
RS_TMP.Close
End If
Set RS_TMP = Nothing
Err:
If Err.Number = 0 Then
Exit Function
ElseIf Err.Number = 3704 Then
Resume Next
MsgBox [Ô]Erro de sistema favor entra em contato com o administrador de sistema - 85 8897-4769[Ô], vbCritical
ElseIf Err.Number = -2147217865 Then
Resume Next
End If
End Function
---------------------------------------------------------
Exemplo de consulta:

Tag = SQL([Ô]Select Nome From Cliente where nome=[ô]Joao[ô][Ô])

Na tabela tem: João
Mas não retorna nada por conta do acento.

Que puder me ajudar fica o meu agradecimento.
GREGO 02/12/2010 12:30:07
#358629
da uma olhada

http://www.macoratti.net/sql_sdex.htm

LUIZCOMINO 02/12/2010 12:30:14
#358630
Tag = SQL([Ô]Select Nome From Cliente where nome like [ô]%Joao %[ô][Ô])
DELLAMARE 02/12/2010 12:38:41
#358631
Na realidade a consulta tem que desconhecer o acento do texto.

Como por exemplo no banco do acess está com o nome: José João da silva
Se na consulta estiver com: Jose Joao da silva

O Sql não traz os registro.
LUIZCOMINO 02/12/2010 12:52:46
#358633
você testou com o Like? igual no exemplo que eu passei?
DELLAMARE 02/12/2010 13:04:15
#358634
Testei mas não funcionou..
LUIZCOMINO 02/12/2010 13:49:30
#358637
Tag = SQL([Ô]Select Nome From Cliente where nome like [ô]Joao %[ô][Ô])

Tag = SQL([Ô]Select Nome From Cliente where nome like [ô]Jo%ao %[ô][Ô])

tente assim
MARCELO.TREZE 02/12/2010 15:03:12
#358642
primeiro faça o seguinte abra o banco access e veja qual os caracteres que aparecem no lugar do acento.

eu faria o seguinte tiraria, o não permitiria a digitação de acentos, ou seja, não salvaria com acentos.
GREGO 03/12/2010 13:28:39
#358724
o access não faz isso sozinho, se quiser mesmo usar o access como banco você tem que tratar na aplicação, fazer um replace algo assim


dim varSQL as string
dim query as string

varSQL = [Ô]João[Ô]

varSQL = Replace(varSQL, [Ô]ã[Ô], [Ô]a[Ô]) [ô]

query = [Ô]select * from tabela a where a.campo like [ô]%[Ô] & varSQL & [Ô][ô]%[Ô]

para o access o [ô]ã[ô] e diferente de [ô]a[ô] portanto o like mostra so o que este pedindo

mas o certo mesmo e fazer isso no banco... usando sondex no sql server

pesquisa por proximidade sonora... isso em algumas palavras ja pode contemplar os sons de [ô]s[ô] [ô]ç[ô] ão oes...

não precisa se preocupar...

GREGO 03/12/2010 13:50:18
#358727
no link que te mandei ensina a fazer a metodo sondex no vb

http://www.macoratti.net/sql_sdex.htm

é a forma mais facil de fazer

ja que o access não pode fazer isso sozinho!
GREGO 08/12/2010 12:38:52
#359079
ajudou?
Tópico encerrado , respostas não são mais permitidas