MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Consulta para retirar Zeros à esquerda e à direita

    Compartilhe

    dedacrf
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 10
    Registrado : 19/04/2017

    [Resolvido]Consulta para retirar Zeros à esquerda e à direita

    Mensagem  dedacrf em 19/4/2017, 18:08

    Caros,

    Preciso resolver o seguinte problema. Tenho uma tabela access onde há um campo com o número (tipo texto). Está tipo texto, pois trata-se de um número de série e existem outros caracteres, alfamunéricos, que devem ser preservados. Preciso extrair o conteúdo desse campo, sem os zeros que estão à esquerda e à direita, além de ".", "-".
    O maior problema é que quantidade de zeros à esquerda e à direita é variável, apesar do tamanho do campo ser 10 posições.
    Já testei várias funções do access, mas não consegui o resultado ideal, que é executar uma consulta de atualização que faça isso de uma única vez. A tabela possui mais de 5 milhões de registros.
    Vide alguns registros:

    Registro original Registro desejado
    0.49402X00 49402X
    -.21602000 21602
    -0.0260800 2608
    000198297 198297
    2045520000 204552

    Desde já agradeço, quem puder me ajudar.
    Abraços,
    Rosano
    avatar
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1237
    Registrado : 05/02/2010

    Consulta para retirar Zeros à esquerda e à direita

    Mensagem  good guy em 19/4/2017, 21:36

    Olá dedacrf,

    Tente com esta sintaxe em sua consulta:

    Código:

    Resultado: Substituir(Substituir(Substituir(Substituir(Substituir(Substituir(Substituir(Meio([Reg];1;10);"-.";"");".0";"");"0000";"");"000";"");"00";"");"0.";"");"-0";"")
    Anexos
    TestaString.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (12 Kb) Baixado 5 vez(es)

    dedacrf
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 10
    Registrado : 19/04/2017

    Re: [Resolvido]Consulta para retirar Zeros à esquerda e à direita

    Mensagem  dedacrf em 19/4/2017, 22:13

    Good Guy,

    Primeiramente gostaria de agradecer a resposta.
    Testei a sintaxe que você enviou e o resultado foi "quase" 100% perfeito.
    Está faltando um ajuste fino:
    - Ela está retirando os "0" internos dos números, quando aparecem seguidos,  e esses tem que permanecer;
    - Em vários casos permaneceram um zero inicial à esquerda e/ou à direita.

    Preciso desprezar apenas todos os da esquerda e direita, além de (., -, _).
    Em anexo envio um pedaço da tabela que estou utilizando.
    Abraço,
    Rosano
    Anexos
    amostra_atualizacao.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (14 Kb) Baixado 6 vez(es)
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5589
    Registrado : 15/03/2013

    Re: [Resolvido]Consulta para retirar Zeros à esquerda e à direita

    Mensagem  ahteixeira em 19/4/2017, 23:23

    Olá a todos,
    Rosano, Bem-Vindo ao fórum.

    Criei uma função para o efeito, veja:
    Código:
    Function fncRemoverZerosEsqDir(Str As String)
    'Alvaro Teixeira (ahteixeira) 2017
    'Para MaximoAccess

      'Trata zeros esquerda
      Do While Left(Str, 1) = "0"
        Str = Mid(Str, 2)
      Loop
       
      'Trata zeros à direita
      Do While Right(Str, 1) = "0"
        Str = Left(Str, Len(Str) - 1)
      Loop
      
      'Trata carateres especiais
      Str = Replace(Str, ".", "")
      Str = Replace(Str, "-", "")
      Str = Replace(Str, "_", "")
      
      fncRemoverZerosEsqDir = Str

    End Function

    Segue exemplo de teste.
    Abraço
    Anexos
    fncRemoverZerosEsqDir.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (14 Kb) Baixado 11 vez(es)
    avatar
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1237
    Registrado : 05/02/2010

    Consulta para retirar Zeros à esquerda e à direita

    Mensagem  good guy em 19/4/2017, 23:23

    Olá deda,

    Não consegui ver o que quis dizer com zeros internos, pois ao meu ver eles permaneceram. Vou verificar com dois zeros ou mais internos. Não trabalhei uma função, talvez a do Teixeira dê certo. Baixe o meu exemplo e trabalhe primeiro com uma consulta simples e não com atualização até conseguir um resultado satisfatório e final e assim evitar resultados indesejáveis.


    Última edição por good guy em 19/4/2017, 23:44, editado 1 vez(es)
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5589
    Registrado : 15/03/2013

    Re: [Resolvido]Consulta para retirar Zeros à esquerda e à direita

    Mensagem  ahteixeira em 19/4/2017, 23:34

    Olá a todos,
    Amigo Good Guy, como vai o lançamento do seu [Você precisa estar registrado e conectado para ver este link.], espero que as vendas seja um sucesso!

    Acho que o colega se refere aos zeros no meio, veja:

    0000506597X00   =>   506597X

    Abraço
    avatar
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1237
    Registrado : 05/02/2010

    Consult

    Mensagem  good guy em 19/4/2017, 23:48

    Olá Teixeira,

    Só vou saber mesmo quando as vendas ultrapassarem o número indicado pela editora e eu receber os meus primeiros 10%. Não é muito, mas para quem está começando... não tenho o que reclamar. Estou me esforçando por uma publicidade maior em faculdades e cursos também.

    Já entendi o que o colega quer, mas agora preciso descansar e amanhã retorno em momento oportuno para analisar. Vamos aguardar até que o nobre colega teste sua função e apure todos os resultados.
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 10231
    Registrado : 04/11/2009

    Re: [Resolvido]Consulta para retirar Zeros à esquerda e à direita

    Mensagem  JPaulo em 20/4/2017, 14:35

    Olá a todos;

    Cole este código num modulo e salve;

    Num campo vazio da sua consulta chame a função deste jeito;

    Resultado: AlteraTexto(SeuCampo)

    Código:
    Public Function AlteraTexto(strTexto As String) As String
    'JPaulo @ maximoaccess 2017
    ' Remove espaços
      strTexto = Replace(strTexto, " ", "")
    ' Remove pontos
      strTexto = Replace(strTexto, ".", "")
    ' Remove traços
      strTexto = Replace(strTexto, "-", "")
    'Remove Zeros á esquerda
        Do Until Left(strTexto, 1) <> 0
          strTexto = Mid(strTexto, 2)
        Loop
       
        ' Remove Zeros á diretita
        Do Until Right(strTexto, 1) <> 0
          strTexto = Mid(strTexto, 1, Len(strTexto) - 1)
        Loop
    AlteraTexto = strTexto
    End Function


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]

    dedacrf
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 10
    Registrado : 19/04/2017

    Re: [Resolvido]Consulta para retirar Zeros à esquerda e à direita

    Mensagem  dedacrf em 20/4/2017, 15:56

    Carissímos, Bom dia!
    Gostaria de agradecer enormemente à todos. Good Guy, Ahteixeira e JPaulo.
    As funções enviadas pelo Álvaro e JPaulo, com algumas diferenças na lógica do código, funcionaram 100% e atenderam ao que precisava.
    Muito obrigado à todos pela ajuda.
    Abraços,
    dedacrf
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 10231
    Registrado : 04/11/2009

    Re: [Resolvido]Consulta para retirar Zeros à esquerda e à direita

    Mensagem  JPaulo em 20/4/2017, 16:24

    Obrigado pelo retorno o forum agradece.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]

      Data/hora atual: 16/11/2018, 10:17