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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Case-sensitive no Access
Loas
não registrado
Postada em 17/05/2004 22:28 hs   
Estou com um problema em uma busca feita em VB6 + Access.

Tenho uma tabela com uma lista de nomes em um DB Access. No programa em VB, quando o usuário tenta buscar por um nome com acento, por ex. "Lúcio", ele não encontra. Isso pq os nomes no DB estão todos sem acento.

Como resolver este problema?

Agradeço a ajuda.
     
Waldirjr
POÇOS DE CALDAS
MG - BRASIL
Postada em 18/05/2004 07:59 hs            
'Coloque esta Funcao num modulo ou numa classe
Public Function TiraAcentos(ByVal sTexto As String) As String
   Dim sAcentos(2, 8) As String
   Dim sCaracter As String
   Dim bAcentos As Boolean
   Dim i As Integer, j As Integer
  
   sAcentos(1, 1) = "á"
   sAcentos(2, 1) = "a"
   sAcentos(1, 2) = "é"
   sAcentos(2, 2) = "e"
   sAcentos(1, 3) = "í"
   sAcentos(2, 3) = "i"
   sAcentos(1, 4) = "ó"
   sAcentos(2, 4) = "o"
   sAcentos(1, 5) = "ú"
   sAcentos(2, 5) = "u"
   sAcentos(1, 6) = "ê"
   sAcentos(2, 6) = "e"
   sAcentos(1, 7) = "ô"
   sAcentos(2, 7) = "o"
   sAcentos(1, 8) = "ã"
   sAcentos(2, 8) = "a"
  
   TiraAcentos = sTexto 'Coloca o texto original como retorno
  
   For i = 1 To Len(sTexto)
     sCaracter = Mid$(sTexto, i, 1) 'Testa cada caracter
     If Asc(sCaracter) >= 192 And Asc(sCaracter) <= 255 Then
       bAcentos = True 'Indica a presença de acentos
       Exit For
     End If
   Next
  
   If bAcentos = True Then
      'Comparamos cada caracter com os elementos da matriz
      For i = 1 To Len(sTexto)
         For j = 1 To 8
            sCaracter = Mid$(sTexto, i, 1)
            If Asc(sCaracter) >= 192 And Asc(sCaracter) <= 255 Then
               If sCaracter = sAcentos(1, j) Then
                  Mid$(sTexto, i, 1) = sAcentos(2, j)
                  TiraAcentos = sTexto
               End If
            End If
         Next
      Next
   End If
End Function
  
   'Chamar:
   Text1.Text = TiraAcentos(Text1.Text)

________________________

Té +

Que NIMB role bons Dados! Emoções

     
Loas
não registrado
Postada em 18/05/2004 08:41 hs   
Obrigado pela dica, Waldirjr.
 
Loas
     
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

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

HTML DESLIGADO

     
 VOLTAR

  



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