MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


    Função Tira Acentos, Caracteres Especiais, Números, letras de String

    avatar
    Lauro Ribeiro
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 16
    Registrado : 15/02/2023

    Função Tira Acentos, Caracteres Especiais, Números, letras de String Empty Função Tira Acentos, Caracteres Especiais, Números, letras de String

    Mensagem  Lauro Ribeiro 18/11/2023, 01:00

    Criei uma função interessante para tirar acentos de vogais e consoantes sem mudar as letras entre maiúsculo minúsculo e resolvi postar.
    Tira Números, caracteres especiais.
    '--------------------------------------------------------------------
    Public Function letras() 'Função para conhecer quais números correspondem a qual letra do alfabeto, caracteres e números.
    Dim vStr As String
    Dim i As Integer
    For i = 1 To 255
    vStr = vStr & "Asc(" & i & ") - Chr(" & Chr(i) & "); " & vbTab
    If i Mod 5 = 0 Then Debug.Print vStr: vStr = ""
    Next
    End Function
    '--------------------------------------------------------------------
    Public Function TiraDaString(vStrLetras As String, vBlTiraLetras, vBlTiraAcentos, vBlTiraCaractEspeciais, vBlTiraNumeros As Boolean) As String '
    'By Lauro Ribeiro
    'Foi retirada a opção de usar o To dentre as opções do Case por ocorrem erros de causas desconhecidas.
    'Para incluir ou retirar caracteres, basta pesquisar seu número com a função Asc(String) e incluir o número no Case de sua categoria.
    Dim vItI As Integer
    Dim vStrSemAcento, vStrAsc As String
    For vItI = 1 To Len(vStrLetras)
    vStrAsc = CInt(Asc(Mid(vStrLetras, vItI, 1)))
    If vBlTiraAcentos Then
    Select Case vStrAsc
    '---------Tira Acentos -------------------
    Case 192, 193, 194, 195, 196, 197: vStrAsc = 65 'A
    Case 199: vStrAsc = 67 'C
    Case 200, 201, 202, 203: vStrAsc = 69 'E
    Case 204, 205, 206, 207: vStrAsc = 73 'I
    Case 209: vStrAsc = 78 'N
    Case 210, 211, 212, 213, 214: vStrAsc = 79 'O
    Case 138: vStrAsc = 83 'S
    Case 217, 218, 219, 220: vStrAsc = 85 'U
    Case 221: vStrAsc = 89 'Y
    Case 142: vStrAsc = 90 'Z
    Case 224, 225, 226, 227, 228, 229: vStrAsc = 97 'a
    Case 231: vStrAsc = 99 'c
    Case 232, 233, 234, 235: vStrAsc = 101 'e
    Case 236, 237, 238, 239: vStrAsc = 105 'i
    Case 241: vStrAsc = 110 'n
    Case 242, 243, 244, 245, 246: vStrAsc = 111 'o
    Case 249, 250, 251, 252: vStrAsc = 117 'u
    Case 253, 255: vStrAsc = 121 'y
    Case 158: vStrAsc = 122 'z
    End Select
    End If
    If vBlTiraCaractEspeciais Then
    Select Case vStrAsc
    '--------- Tira Caracteres Especiais -------------------
    Case 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 58, 59, 60, 61, 62, 64, 126, 91, 92, 93, 94, 95, 96, 127: vStrAsc = 1
    Case 128, 129, 131, 132, 134, 135, 136, 137, 139, 140, 147, 148, 149, 150, 151, 152, 153, 155, 156, 157, 160, 161, 162, 163, 164, 165, 166, 167: vStrAsc = 1
    Case 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 187, 188, 189, 190, 191, 208, 215, 216, 222, 223: vStrAsc = 1
    End Select
    End If

    If vBlTiraNumeros Then
    '--------- Tira os números -------------------
    Select Case vStrAsc
    Case 48, 49, 50, 51, 52, 53, 54, 55, 56, 57: vStrAsc = 1
    End Select
    End If

    If vBlTiraLetras Then
    Select Case vStrAsc
    '--------- Tira as Letras -------------------
    Case 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122: vStrAsc = 1
    Case 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 138, 142, 158, 192, 193: vStrAsc = 1
    Case 194, 195, 196, 197, 199, 200, 201, 202, 203, 204, 205, 206, 207, 209, 210, 211, 212, 213, 214, 217, 218, 219, 220, 221, 224, 225: vStrAsc = 1
    Case 226, 227, 228, 229, 231, 232, 233, 234, 235, 236, 237, 238, 239, 241, 242, 243, 244, 245, 246, 249, 250, 251, 252, 253, 255: vStrAsc = 1
    End Select
    End If
    If Not vStrAsc = 1 Then vStrSemAcento = vStrSemAcento & Chr(vStrAsc)
    Next
    TiraDaString = Trim(vStrSemAcento)
    End Function

      Data/hora atual: 16/7/2024, 12:47