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


    [Resolvido]Converter caracteres na tabela

    avatar
    Convidad
    Convidado


    [Resolvido]Converter caracteres na tabela Empty Converter caracteres na tabela

    Mensagem  Convidad 4/12/2011, 17:06

    Olá! Help me again!

    Tenho um formulário de manutenção de dados com botões para corrigir determinadas entradas nas tabelas.

    Um desses botões executa correções na tabela tab_Clientes, e uma dessas correções deve ser alterar entradas no campo texto NomeCliente, onde os usuários digitam de tudo quanto é jeito: tudo maiúsculo, tudo minúsculo, maiúsculo/minúsculo, espaços antes do primeiro caractere no campo, espaços duplos ou triplos entre as palavras, e espaços após o último caractere no campo.

    Na pesquisa que fiz encontrei muito código, mas patinei na adaptação e alguns itens não encontrei.

    Gostaria de eliminar os espaços inadequados no início e final do campo e entre as palavras (quandor houver + de 1), e converter a 1ª letra de cada palavra em maiúscula e as demais em minúsculas.
    Mais um detalhe: nomes onde há "de, da, dos.." devem ser mantidos em ou convertidos para minúsculas.

    Compliquei, não é?

    Mas se alguém tem esta função, creio que será de utilidade para todos!

    Obrigado pela atenção!


    Última edição por norbs em 4/12/2011, 17:48, editado 2 vez(es)
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Converter caracteres na tabela Empty Re: [Resolvido]Converter caracteres na tabela

    Mensagem  criquio 4/12/2011, 17:15

    A questão de nomes próprios com inicial maiúscula e o restante minúsculo, temos exemplos aqui no forum. Para retirar os espaços da esquerda e direita, pode usar o LTrim e RTrim:

    Me.NomeDoCampo = Maiuscula(Me.NomeDoCampo) ' Maiuscula é o nome da função que fará o trabalho
    Me.NomeDoCampo = LTrim(Me.NomeDoCampo) ' Retira os espaços da esquerda
    Me.NomeDoCampo = RTrim(Me.NomeDoCampo) ' Retira os espaços da direita


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Convidad
    Convidado


    [Resolvido]Converter caracteres na tabela Empty Re: [Resolvido]Converter caracteres na tabela

    Mensagem  Convidad 4/12/2011, 18:24

    Obrigado por postar!

    Vou pesquisar por mais detalhes.

    Se eu conseguir montar uma função que faça todas as correções mencionadas, crio um exemplo e ponho no Repositório.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Converter caracteres na tabela Empty Re: [Resolvido]Converter caracteres na tabela

    Mensagem  criquio 4/12/2011, 19:20

    OK! Pode ser feito tambem utilizando todas essas instruções em conjunto. Vamos supor que queira "arrumar" o nome de todos os registros de uma tabela de uma vez:

    Dim rs As Recordset
    Set rs = CurrentDb.OpenRecordset("NomeDaTabela")

    DoWhile Not rs.EOF

    strConv(rs!Nome, 3) ' Coloca todas as palavras com inicial maiúscula
    LTrim(rs!Nome) ' Retira espaços no início do nome
    RTrim(rs!Nome) ' Retira espaços no final do nome
    Replace(rs!Nome, "Da", "da") ' Coloca todas as letras da palavra em minúsculo
    Replace(rs!Nome, "Das", "das") ' Idem linha acima
    Replace(rs!Nome, "E", "e") ' Idem linha acima
    Replace(rs!Nome, "De", "de") ' Idem linha acima
    Replace(rs!Nome, "Do", "do") ' Idem linha acima
    Replace(rs!Nome, "Dos", "dos") ' Idem linha acima

    rs.MoveNext

    Loop

    rs.Close
    Set rs = Nothing


    Vale ressaltar que esse processo pode demorar horas caso o número de registros da tabela seja excessivamente alto (na casa dos milhões), pois a função correrá linha por linha, realizando cada uma das tarefas, uma por vez. A ideia aqui seria usá-la uma única vez para arrumar os nomes já constantes da tabela e então passar a usá-la no formulário no momento do cadastro, de forma ao nome já ser cadastrado na forma correta.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Convidad
    Convidado


    [Resolvido]Converter caracteres na tabela Empty Re: [Resolvido]Converter caracteres na tabela

    Mensagem  Convidad 4/12/2011, 20:13

    É o que pretendo incrementar.
    Consertar o estrago, e depois evitar que se repita.
    Devia ter feito isso já no início... mas estou aprendendo!

    Grato pela atenção!
    avatar
    Convidad
    Convidado


    [Resolvido]Converter caracteres na tabela Empty Conflito entre correções

    Mensagem  Convidad 7/12/2011, 21:44

    Uma observação apesar de já ser resolvida:

    ' Coloca todas as palavras com inicial maiúscula
    Me.ClienteNome = StrConv(ClienteNome, vbProperCase) 'vbProperCase = 3
    ' Obs.: Faz isso apenas quando todas estão em maiúscula. Do contrário, ignora.

    Notei este conflito quando se utiliza juntamente com:

    Me.ClienteNome = Replace(Me.ClienteNome, "De", "de")

    Neste caso nomes cadastrados como "Denis" e "Deodoro" são convertidos para "denis" e "deodoro".


    O VBA não faz milagres, né?!

    * Poderia ser contornado caso haja um modo de detectar se "De" está no iníco do campo, e aí colocar um If Question

    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Converter caracteres na tabela Empty Re: [Resolvido]Converter caracteres na tabela

    Mensagem  criquio 7/12/2011, 22:53

    Coloque um espaço antes e um depois:

    Me.ClienteNome = Replace(Me.ClienteNome, " De ", " de ")

    Assim, ele sabe que se trata de uma palavra inteira.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Convidad
    Convidado


    [Resolvido]Converter caracteres na tabela Empty Re: [Resolvido]Converter caracteres na tabela

    Mensagem  Convidad 7/12/2011, 23:01

    Me incomoda não ter pensado nisso. Sleep

    Thanks! king

    Conteúdo patrocinado


    [Resolvido]Converter caracteres na tabela Empty Re: [Resolvido]Converter caracteres na tabela

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 8/11/2024, 01:39