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

3 participantes

    [Resolvido]Limpa Acentos, caracteres especiais e espaços em um só módulo

    avatar
    Carlao2
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 258
    Registrado : 19/10/2016

    [Resolvido]Limpa Acentos, caracteres especiais e espaços em um só módulo Empty [Resolvido]Limpa Acentos, caracteres especiais e espaços em um só módulo

    Mensagem  Carlao2 Sex 29 Out 2021, 7:16 pm

    Srs
    Bom dia!

    Estou precisando da preciosa e habitual ajuda dos senhores
    Tenho um banco chamado "Base" e nele uma tabela "Físico" e nessa tabela um campo "Descrição"
    Essa tabela possui mais ou menos 360.000 registros e o que preciso é um módulo que tire os acentos, caracteres especiais e espaços extras de uma só vez no campo "descrição".
    Se puderem me ajudar ficarei imensamente grato
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2605
    Registrado : 13/12/2016

    [Resolvido]Limpa Acentos, caracteres especiais e espaços em um só módulo Empty Re: [Resolvido]Limpa Acentos, caracteres especiais e espaços em um só módulo

    Mensagem  Alexandre Fim Sex 29 Out 2021, 9:08 pm

    Ola Carlão,

    Seguem 2 funções onde você pode COPIAR+COLAR em algum módulo qualquer:

    Código:


    Public Function fncRemCaracSpc(ByVal nCampo As Variant) As String
    Dim carac1          As String
    Dim carac2          As String
    Dim x              As Integer
       
        If IsNull(nCampo) Or Trim(nCampo) = "" Then
            fncRemCaracSpc = ""
            Exit Function
        End If
       
        '-- Inclua quais os caracteres especiais necessários
       carac1 = "'!@#$%¨&*()ºª"
       
        For X = 1 To Len(carac1)
            carac2 = Mid(carac1, X, 1)
            nCampo = Replace(nCampo, carac2, "")
        Next X
     
      fncRemCaracSpc = nCampo

    End Function

    Function fncRemoveAcentos(ByVal texto As String) As String   
        Dim vPos As Byte
       
        Const vComAcento = "ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜàáâãäåçèéêëìíîïòóôõöùúûü"
        Const vSemAcento = "AAAAAACEEEEIIIIOOOOOUUUUaaaaaaceeeeiiiiooooouuuu"
       
        For i = 1 To Len(texto)
            vPos = InStr(1, vComAcento, Mid(texto, i, 1))
            If vPos > 0 Then
              Mid(texto, i, 1) = Mid(vSemAcento, vPos, 1)
            End If
        Next
       '-- Função Trim remove espaços no inicio e fim da string
        fncRemoveAcentos = Trim(texto)
    End Function


    Se precisar de ajuda para utilizá-las, é só postar aqui.

    É isso

    []'s
    avatar
    Carlao2
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 258
    Registrado : 19/10/2016

    [Resolvido]Limpa Acentos, caracteres especiais e espaços em um só módulo Empty Re: [Resolvido]Limpa Acentos, caracteres especiais e espaços em um só módulo

    Mensagem  Carlao2 Seg 01 Nov 2021, 5:59 pm

    Bom dia Alexandre

    Então, nesse banco não tenho nenhum módulo e também não tenho nenhum formulário
    Somente tabelas e a tabela onde preciso executar essa função é na tabela Fisico no campo Descricao.
    Troquei o ncampo por descricao mas não estou conseguindo executar a função

    Desde já agraço
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2605
    Registrado : 13/12/2016

    [Resolvido]Limpa Acentos, caracteres especiais e espaços em um só módulo Empty Re: [Resolvido]Limpa Acentos, caracteres especiais e espaços em um só módulo

    Mensagem  Alexandre Fim Seg 01 Nov 2021, 7:29 pm

    Bom dia Carlão,

    Por gentileza, envie uma cópia do seu banco de dados com poucos registros (20...ou 30) para eu fazer um teste.
    Sem as tabelas e o nome das colunas fica mais difícil de te ajudar.

    Valeu

    []'s

    FIM
    avatar
    Carlao2
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 258
    Registrado : 19/10/2016

    [Resolvido]Limpa Acentos, caracteres especiais e espaços em um só módulo Empty Re: [Resolvido]Limpa Acentos, caracteres especiais e espaços em um só módulo

    Mensagem  Carlao2 Seg 01 Nov 2021, 8:06 pm

    Alexandre

    Segue conforme sua solicitação


    Obrigadu
    Anexos
    [Resolvido]Limpa Acentos, caracteres especiais e espaços em um só módulo AttachmentBase.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (22 Kb) Baixado 3 vez(es)
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2605
    Registrado : 13/12/2016

    [Resolvido]Limpa Acentos, caracteres especiais e espaços em um só módulo Empty Re: [Resolvido]Limpa Acentos, caracteres especiais e espaços em um só módulo

    Mensagem  Alexandre Fim Seg 01 Nov 2021, 9:28 pm

    Carlão,

    Criei o campo abaixo, que irá receber os dados do campo "Descricao"
    [Resolvido]Limpa Acentos, caracteres especiais e espaços em um só módulo Fisico10

    Executar na sequencia abaixo:

    [Resolvido]Limpa Acentos, caracteres especiais e espaços em um só módulo Fisico11

    1 - A consulta atualização "cnsRemoveCaracEspec" irá executar a função "fncRemCaracSpc" e vai gravar os dados no campo "DescricaoAjus"
    2 - A consulta atualização "cnsRemoveAcentos" irá executar a função "fncRemoveAcentos" e vai atualizar o campo "DescricaoAjus"

    É necessário executar nesta sequencia.

    OBS: Criei a consulta "cnsLimpaCampoAjustado" que limpa o campo "DescricaoAjus", para que seja executado os passos acima, caso tenha faltado algum caracter especial na função "fncRemCaracSpc" ou se algum caracter com acento na função "fncRemoveAcentos".
    Neste caso, é só inclui o caracter necessário nas respectivas funções e rode a sequencia novamente.

    É isso

    Segue exemplo.

    Espero ter ajudado

    Boa sorte

    []'s

    FIM
    Anexos
    [Resolvido]Limpa Acentos, caracteres especiais e espaços em um só módulo AttachmentBase_RemovCaracAcentos.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (40 Kb) Baixado 14 vez(es)
    avatar
    Carlao2
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 258
    Registrado : 19/10/2016

    [Resolvido]Limpa Acentos, caracteres especiais e espaços em um só módulo Empty Re: [Resolvido]Limpa Acentos, caracteres especiais e espaços em um só módulo

    Mensagem  Carlao2 Seg 01 Nov 2021, 9:54 pm

    Alexandre

    Muito obrigado

    Só mais uma dúvida
    Entendi o funcionamento, porém algumas descrições tem dois ou mais espaços entre palavras
    Tem como resolver isso também?, pois essas funções tiram somente os espaços no começo e fim


    Grato
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2605
    Registrado : 13/12/2016

    [Resolvido]Limpa Acentos, caracteres especiais e espaços em um só módulo Empty Re: [Resolvido]Limpa Acentos, caracteres especiais e espaços em um só módulo

    Mensagem  Alexandre Fim Seg 01 Nov 2021, 10:42 pm

    Carlão,

    Infelizmente, você vai ter que tratar essas exceções, e acredito que dá pra fazer bastante coisa com consulta atualização.

    O problema é que, se vc incluir o caracter "espaço" na variável da função "fncRemCaracSpc", o sistema vai eliminar TODOS os espaços da palavra:
    [Resolvido]Limpa Acentos, caracteres especiais e espaços em um só módulo Fisico12


    Se forem muitos casos, ai é melhor fazer via código.

    []'s

    FIM
    avatar
    Carlao2
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 258
    Registrado : 19/10/2016

    [Resolvido]Limpa Acentos, caracteres especiais e espaços em um só módulo Empty Re: [Resolvido]Limpa Acentos, caracteres especiais e espaços em um só módulo

    Mensagem  Carlao2 Seg 01 Nov 2021, 11:19 pm

    Alexandre

    Entendido

    Muito obrigado pela valiosa ajuda

    Abraços
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2605
    Registrado : 13/12/2016

    [Resolvido]Limpa Acentos, caracteres especiais e espaços em um só módulo Empty Re: [Resolvido]Limpa Acentos, caracteres especiais e espaços em um só módulo

    Mensagem  Alexandre Fim Seg 01 Nov 2021, 11:33 pm

    Valeu Carlão !!!
    O fórum agradece.

    Sucesso!!!
    avatar
    Carlao2
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 258
    Registrado : 19/10/2016

    [Resolvido]Limpa Acentos, caracteres especiais e espaços em um só módulo Empty Re: [Resolvido]Limpa Acentos, caracteres especiais e espaços em um só módulo

    Mensagem  Carlao2 Ter 02 Nov 2021, 12:20 am

    Alexandre

    Só para informação

    Fiz a alteração que está como comentada abaixo e acho que resolveu o problema de espaços extras entre palavras

    Public Function fncRemCaracSpc(ByVal nCampo As Variant) As String
    Dim carac1 As String
    Dim carac2 As String
    Dim x As Integer

    If IsNull(nCampo) Or Trim(nCampo) = "" Then
    fncRemCaracSpc = ""
    Exit Function
    End If

    '-- Inclua quais os caracteres especiais necessários
    carac1 = "'!@#$%¨&*()ºª/:;"

    For x = 1 To Len(carac1)
    carac2 = Mid(carac1, x, 1)
    nCampo = Replace(nCampo, carac2, "")
    'nCampo = Replace(nCampo, " ", " ")
    'nCampo = Replace(nCampo, " ", " ")
    'nCampo = Replace(nCampo, " ", " ")
    Next x

    fncRemCaracSpc = nCampo

    End Function
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2605
    Registrado : 13/12/2016

    [Resolvido]Limpa Acentos, caracteres especiais e espaços em um só módulo Empty Re: [Resolvido]Limpa Acentos, caracteres especiais e espaços em um só módulo

    Mensagem  Alexandre Fim Ter 02 Nov 2021, 12:29 am

    Muito bem lembrado !!!
    Show!!!
    Que bom que deu certo!!!

    Sucesso !!!
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3707
    Registrado : 22/11/2016

    [Resolvido]Limpa Acentos, caracteres especiais e espaços em um só módulo Empty Re: [Resolvido]Limpa Acentos, caracteres especiais e espaços em um só módulo

    Mensagem  DamascenoJr. Ter 02 Nov 2021, 12:57 am

    Resolvendo, Carlao2, não esqueça de marcar o tópico como resolvido. Precisamos manter a casa organizada.

    Aguardamos sua ação.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    avatar
    Carlao2
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 258
    Registrado : 19/10/2016

    [Resolvido]Limpa Acentos, caracteres especiais e espaços em um só módulo Empty Re: [Resolvido]Limpa Acentos, caracteres especiais e espaços em um só módulo

    Mensagem  Carlao2 Qua 03 Nov 2021, 4:43 pm

    Damasceno

    Valeu

    Tópico mais que resolvido

    Obrigado

    Bom dia!

      Data/hora atual: Sab 01 Out 2022, 7:37 pm