Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Clauido José

[Resolvido] acento em busca

Recommended Posts

bom pessoal estou com um problema estou criando um estoque onde na tabela de usuario se eu cadastrar CLAUDIO JOSE nao vou poder cadastra CLAUDIO JOSÉ MARTINEZ CARDOSO ENTENDE eu peguei uma função pra tirar a acentuação mas nao to conceguindo ender ela é assim que to fazendo.

esta é afunção de acentuação

function palavrasem(pesq)

palavrasem = Replace(pesq,"a","[a, á , ã]")
palavrasem = Replace(palavrasem,"A","[A, Á, Ã]")
palavrasem = Replace(palavrasem,"e","[e, é , è , ê]")
palavrasem = Replace(palavrasem,"E","[E , É , Ê]")
palavrasem = Replace(palavrasem,"i","[i , í , ì]")
palavrasem = Replace(palavrasem,"I","[I , Í]")
palavrasem = Replace(palavrasem,"o","[o , ó , ò , ô , õ]")
palavrasem = Replace(palavrasem,"O","[O , Ó , Ô , Õ]")
palavrasem = Replace(palavrasem,"u","[u , ú , ù]")
palavrasem = Replace(palavrasem,"U","[U , Ú]")
palavrasem = Replace(palavrasem,"c","[c , ç]")
palavrasem = Replace(palavrasem,"C","[C , Ç]")
palavrasem = palavrasem
end function

function palavracom(Pesq)
palavracom = Replace(pesq,"ã","[a]")
palavracom = Replace(palavracom,"Ã","[A]")
palavracom = Replace(palavracom,"á","[a]")
palavracom = Replace(palavracom,"Á","[A]")
palavracom = Replace(palavracom,"ê","[e]")
palavracom = Replace(palavracom,"Ê","[E]")
palavracom = Replace(palavracom,"í","[i]")
palavracom = Replace(palavracom,"Í","[I]")
palavracom = Replace(palavracom,"õ","[o]")
palavracom = Replace(palavracom,"Õ","[O]")
palavracom = Replace(palavracom,"ú","[u]")
palavracom = Replace(palavracom,"Ú","[U]")
palavracom = Replace(palavracom,"ç","[c]")
palavracom = Replace(palavracom,"Ç","[C]")
palavracom = palavracom

end function

está é a busca que faço no banco de dados

 

 

<!--#include file="strCon.asp"-->
<%
dim strTitulo,strTexto,strNew, Conexao, strSql
call abreConexao()
sNome=Request("sNome")
sRe=Request("sRe")	
sUsuario=Request("sUsuario")
sSenha=Request("sSenha")
codNivel=Request("sNivel")
atc=Request("atc")
if atc="new" then
	strSql = "Select * from tabTecnicoAlmox where NomeTecnicoAlmox lilke '%" & palavrasem(sNome) & "%' "
	strSql = strSql & "or NomeTecnicoAlmox like '%" & palavracom(sNome) & "%' "
	strSql = strSql & "and Usuario = '" & sUsuario & "'"
	'response.Write(strsql)
	'Response.End()
	rsBusca.Open strSql,Conexao,3,3
	if rsBusca.recordCount = 0 then
		strNew = "insert into tabTecnicoAlmox (NomeTecnicoAlmox,ReTecnicoAlmox,Usuario,Senha,NivelAcesso) values ('"
		strNew = strNew & sNome & "','" & sRe & "','" & sUsuario & "','" & sSenha & "'," & codNivel & ")"
		Response.Write(strnew)
		response.End()
		Conexao.Execute(strNew)
%>
		<table width="70%" border="0" cellpadding="2" cellspacing="2" class="style2">
			<tr>
				<td>Tecnico do almoxarifado cadastrado com sucesso. </td>
			</tr>
		</table>
<%		
	else
%>
		<link href="css/estilos.css" rel="stylesheet" type="text/css">

		<table width="70%" border="0" cellpadding="2" cellspacing="2" class="style2">
			<tr>
				<td>Tecnico do almoxarifado já cadastrado</td>
			</tr>
		</table>	
<%
	end if
else
	
end if
%>
ele me enforma o seguinte erro.

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)

[Microsoft][Driver ODBC para Microsoft Access] Erro de sintaxe (operador faltando) na expressão de consulta 'NomeTecnicoAlmox lilke '%198043375%' or NomeTecnicoAlmox like '%198043375%' and Usuario = 'CLAJMCARDOSO''.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você escreveu lilke. Corrige aí e tenta de novo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara eu corrigi mas ela ta duplicando ainda como no exemplo que falei

tipo

CLAUDIO JOSE

CLAUIDO JOSÉ

CLAUDIO JOSÉ MARTINEZ CARDOSO

Compartilhar este post


Link para o post
Compartilhar em outros sites

implementa essa função.

 

Function RemoveAcentos(ByVal Texto)
	Dim ComAcentos
	Dim SemAcentos
	Dim Resultado
	Dim Cont
	'Conjunto de Caracteres com acentos
	ComAcentos = "ÁÍÓÚÉÄÏÖÜËÀÌÒÙÈÃÕÂÎÔÛÊáíóúéäïöüëàìòùèãõâîôûêÇç"
	'Conjunto de Caracteres sem acentos
	SemAcentos = "AIOUEAIOUEAIOUEAOAIOUEaioueaioueaioueaoaioueCc"
	Cont = 0
	Resultado = Texto
	Do While Cont < Len(ComAcentos)
	Cont = Cont + 1
	Resultado = Replace(Resultado, Mid(ComAcentos, Cont, 1), Mid(SemAcentos, Cont, 1))
	Loop
	RemoveAcentos = Resultado
End Function

e faça assim:

 

sNome=Request("sNome")
palavrasemacento=palavrasem(sNome)
strSql = "Select * from tabTecnicoAlmox where NomeTecnicoAlmox lilke '%" & palavrasemacento & "%' "
	strSql = strSql & "or NomeTecnicoAlmox like '%" & palavrasemacento & "%' "
	strSql = strSql & "and Usuario = '" & sUsuario & "'"

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenho uma duvida na hora de gravar eu coloco a acentuação?

Outra coisa não fucionou aqui por exemplo tem que ser que nem o exemplo que passei

se eu digitar

CLAUDIO JOSE

NAO POSSO TER

CLAUDIO JOSÉ

OU

CLAUDIO JOSÉ MARTINEZ

OU

CALAUDIO JOSE MARTINEZ

OU AINDA

CLAUDIO JOSE MARTINEZ CARDOSO

OU

CLAUDIO JOSÉ MARTINEZ CARDOSO

Compartilhar este post


Link para o post
Compartilhar em outros sites

grave com acento, quando for buscar você retira os acentos, e para essa busca usa o POG do Ted k'

 

SELECT * FROM minha_tabela WHERE nome_cliente LIKE '%"&Replace(campo_da_busca, " ", "%")&"%'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu usei a fução do jon certo aqui ta ela

Function RemoveAcentos(ByVal Texto)

Dim ComAcentos

Dim SemAcentos

Dim Resultado

Dim Cont

'Conjunto de Caracteres com acentos

ComAcentos = "ÁÍÓÚÉÄÏÖÜËÀÌÒÙÈÃÕÂÎÔÛÊáíóúéäïöüëàìòùèãõâîôûêÇç"

'Conjunto de Caracteres sem acentos

SemAcentos = "AIOUEAIOUEAIOUEAOAIOUEaioueaioueaioueaoaioueCc"

Cont = 0

Resultado = Texto

Do While Cont < Len(ComAcentos)

Cont = Cont + 1

Resultado = Replace(Resultado, Mid(ComAcentos, Cont, 1), Mid(SemAcentos, Cont, 1))

Loop

RemoveAcentos = Resultado

End Function

E a busca eu fiz assim:

palavrasemacento=RemoveAcentos(Nome)
strSql = "Select * from tabTecnicoAlmox where Nome like '%" & palavrasemacento & "%' "
strSql = strSql & "or Nome like '%" & Nome & "%' "
strSql = strSql & "and CPF like '%" & replace(sRe,"'","´") & "' "
Ainda tenho que fazer mais teste mas aparentemente ta funçionando valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.