USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Pesquisa indiferente de acento
ATS
OURINHOS
SP - BRASIL
ENUNCIADA !
Postada em 05/12/2006 08:24 hs            
Tenho um sistema feito em Visual Basic 6 e banco de dados Access 97. Quando efetuo uma pesquisa através dos comandos SQL ele faz distinção entre palavras com ou sem acento. Como faço para a pesquisa me trazer as palavras com acento e tambem as sem acento?
   
kerplunk
Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 05/12/2006 08:34 hs         
Isso não vai ser possível usando a engine SQL do access. Claro que tem solução, mas complexa e lenta. Você teria que pegar a tabela registro por registro e transferir tudo para uma tabela temporária, trocando MANUALMENTE os "À","Â","Ã","Á" por "A" e tb com todos os "O" acentuados...
   
ghost_jlp
Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 05/12/2006 10:35 hs            
Postei um tempo atrás sobre isso... realmente o q o Kerplunk disse é verdade mas se quiser mesmo assim está aqui o post:
 
 
Nele está uma função q retorna uma string para pesquisar as palavras acentuadas. Provavelmente vc vai ter q alterá-la um pouco mas a base é esta.
 
at+
   
CSRocha
BRASILIA
DF - BRASIL
ENUNCIADA !
Postada em 06/12/2006 15:12 hs            
Uso esta função há tempos:

-------------------------------
Function SemAcento(texto)
Dim Carac_esp, C_especial, C_subst As String
Dim F_tam As Integer, F_pos As Integer
Dim conta_letra As Integer, conta_pos As Integer
Dim Fonte As String
Fonte = texto
C_especial = "áàãâäÁÀÃÂÄóòõôöÓÒÕÔÖÉÈÊËéèêëíìïÍÌÏúùûüÚÙÛÜçÇñ"
C_subst = "aaaaaAAAAAoooooOOOOOEEEEeeeeiiiIIIuuuuUUUUcCn"
F_tam = Len(Fonte)
For conta_letra = 1 To F_tam
    Carac_esp = Mid(Fonte, conta_letra, 1)
    F_pos = InStr(C_especial, Carac_esp)
    If F_pos > 0 Then
        Mid(Fonte, conta_letra, 1) = Mid(C_subst, F_pos, 1)
    End If
Next conta_letra
SemAcento = Fonte
End Function
-----------------------------------------

É só pesquisar: ...Where SemAcento(rs!Nome) = '" & SemAcento(strNome) & "'"... ou coisa parecida.

   
ATS
OURINHOS
SP - BRASIL
ENUNCIADA !
Postada em 07/12/2006 16:25 hs            
Estou tetntando colocar a função "SemAcento" passado no topico acima mas esta dando erro da a seguinte mensagem:
 
Função 'SemAcento' indefinida na expressão
 
Veja o comando SQL onde estou tentado incluir a função:
 
Set rstRegistro = cnnPesquisa.Execute("SELECT tblCadProd.CodigoProduto, tblCadProd.Grupo, " _
      & "tblCadProd.CodigoBarras, tblCadProd.DescricaoProduto, " _
      & "tblCadProd.Autor, tblCadProd.Editora, tblCadProd.Assunto, " _
      & "tblCadProd.Setor, tblCadProd.ISBN, tblCadProd.QuantidadeEstoque, " _
      & "tblCadProd.EstoqueMinimo, tblCadProd.PrecoCusto, " _
      & "tblCadProd.PrecoVenda, tblCadProd.DataAquisicao, tblCadProd.Observacao, " _
      & "tblCadProd.MargemLucro, tblCadProd.CodigoInterno, tblCadProd.Edicao, " _
      & "tblCadProd.Pagina, tblCadProd.Ano, tblCadProd.Idioma, tblCadProd.foto, " _
      & "tblCadProd.PrecoCustoNovo, tblCadProd.PrecoVendaNovo, " _
      & "tblCadProd.MargemLucroNovo, tblCadProd.QuantidadeEstoqueNovo, tblCadProd.Peso, " _
      & "tblCadProd.Classe, tblCadProd.Classificacao, tblCadProd.DataUltimoReajustePreco, " _
      & "tblCadProd.ProdutoInativo, tblCadProd.NaoImpProdTabPreco from tblCadProd " _
      & "WHERE tblCadProd.Grupo LIKE 'Livros' " _
      & "AND SemAcento(tblCadProd.DescricaoProduto) LIKE '%" & SemAcento(txtPesquisa) & "%' " _
      & "ORDER BY tblCadProd.DescricaoProduto;")
TÓPICO EDITADO
 
CSRocha
BRASILIA
DF - BRASIL
ENUNCIADA !
Postada em 07/12/2006 17:46 hs            
Na realidade eu utilizo essa função fora de query SQL, daí não sei se funciona, ou seja, não sei se se pode utilizar uma função como esse em uma SQL.

Testou = em vez de LIKE? Ou vc está pesquisando parte de strings?

Outro detalhe: acredito que a função tem que estar em um módulo.
   
Página(s): 1/2      PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página