pesquisa sem acento

Delphi

27/09/2005

boa tarde
Tem com fazer uma pesquisa que possa identifica se o nome tem acento ou não por exemplo
seu eu digito na edit o nome joao me de com resultado
joao
joão
josé joão ou
josé joao
todos os joao com acento ou sem acento

uso banco de dados acess e componetes adoquery.

agradeço desda já pela ajuda de vc


Matrix0101

Matrix0101

Curtidas 0

Respostas

Bertocco

Bertocco

27/09/2005

// use essa função

function RemoveAcento(Str:String): String;
Const
ComAcento = ´àâêôûãõáéíóúçüÀÂÊÔÛÃÕÁÉÍÓÚÇÜ´;
SemAcento = ´aaeouaoaeioucuAAEOUAOAEIOUCU´;
Var
x : Integer;
Begin
For x := 1 to Length(Str) do
if Pos(Str[x],ComAcento)<>0 Then
Str[x] := SemAcento[Pos(Str[x],ComAcento)];
Result := Str;
end;

Como usar
edit1.Text:=RemoveAcento(edit.Text);

Boa Sorte


GOSTEI 0
Matrix0101

Matrix0101

27/09/2005

descupe a minha falta de conhecimento mais essa função faria uma pesquisa no banco de dados mesmo que estejá gravado o nome com acento ou sem acento.


GOSTEI 0
Bertocco

Bertocco

27/09/2005

Sim, usando até mesmo o dbedit1,
Exemlo

query.ParambyName.(´NOME´).Astring:=RemoveAcento(dbedit1.Text);


GOSTEI 0
Mkoch

Mkoch

27/09/2005

Eu utiliso o Firebird 1.5, e criei uma UDF para remover os acentos no momento da pesquisa dentro do SQL que é o que você deve querer. Infelizmente não sei se isso é possível no access.


GOSTEI 0
Geomicro

Geomicro

27/09/2005

amigo estou tendo usa esse comando que vc me deu no adoquery e não consigo

Sim, usando até mesmo o dbedit1,
Exemlo

query.ParambyName.(´NOME´).Astring:=RemoveAcento(dbedit1.Text);

teria oura forma so para fazer o teste


GOSTEI 0
POSTAR