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]extrair numero de campo entre espaços

    avatar
    giba_
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 123
    Registrado : 01/02/2011

    [Resolvido]extrair numero de campo entre espaços Empty [Resolvido]extrair numero de campo entre espaços

    Mensagem  giba_ 24/6/2013, 12:26

    prezadados tenho o seguinte dado


    REF.  NF.  3  2390/1  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 
    VL. NFE 3  2401/1  -  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 

    a missão é o seguinte tenho que extrair apenas os numeros 2390 e 2401
    ja tentei direita e esquerda e como os caracteres não possuem o mesmo tamanho não fica correto
    alguma sugestão?
    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]extrair numero de campo entre espaços Empty Re: [Resolvido]extrair numero de campo entre espaços

    Mensagem  criquio 24/6/2013, 13:55

    Se for sempre três espaços antes de chegar ao número, você pode usar isso para começar a contar após o terceiro espaço. Tambem pode usar o inStr para localizar a barra e então contar 4 números antes dela e 1 depois. Pesquise pelo inStr no F1 do VBA e veja o que consegue.


    .................................................................................
    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.

    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1601
    Registrado : 12/11/2009

    [Resolvido]extrair numero de campo entre espaços Empty Re: [Resolvido]extrair numero de campo entre espaços

    Mensagem  Leandro 24/6/2013, 14:12

    Com a permissão do Críquio e usando o que ele informou:

    Meio([string];EmSeq(EmSeq(EmSeq([string];"nf");[string];" ")+1;[string];" ")+1;4)

    Nesse caso a função InStr é a mesma que EmSeq.

    Nesse exemplo eu usei uma consulta e o campo da tabela chama-se pelo nome String.

    Para o VBA a função Meio chama-se MID.

    avatar
    giba_
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 123
    Registrado : 01/02/2011

    [Resolvido]extrair numero de campo entre espaços Empty Re: [Resolvido]extrair numero de campo entre espaços

    Mensagem  giba_ 24/6/2013, 14:29

    Valeu! vou bater cabeça daqui a pouco retorno

    adaptei o codigo e obtive o seguinte resultado! apenas uma ideia, teria como eu começar a extrair apartir da barra e parar no primeiro espaço? ou seja da direita para a esquerda?


    Consulta5[th]HISTÓRICO[/th][th]Expr1[/th]
    REF. NF. 3 2390/1 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 3 2
    VL. NFE 3 2401/1 - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 240
    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1601
    Registrado : 12/11/2009

    [Resolvido]extrair numero de campo entre espaços Empty Re: [Resolvido]extrair numero de campo entre espaços

    Mensagem  Leandro 24/6/2013, 14:45

    Bem pensado!!! Smile

    Meio([string];EmSeq([string];"/")-4;4)

    avatar
    giba_
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 123
    Registrado : 01/02/2011

    [Resolvido]extrair numero de campo entre espaços Empty Re: [Resolvido]extrair numero de campo entre espaços

    Mensagem  giba_ 24/6/2013, 14:57

    exibiu a seguinte msg " Houve um erro na compilação desta função", sendo que seleciona o MID
    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1601
    Registrado : 12/11/2009

    [Resolvido]extrair numero de campo entre espaços Empty Re: [Resolvido]extrair numero de campo entre espaços

    Mensagem  Leandro 24/6/2013, 15:22

    Então assim:

    Mid([string],InStr([string],"/")-4,4)

    avatar
    giba_
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 123
    Registrado : 01/02/2011

    [Resolvido]extrair numero de campo entre espaços Empty Re: [Resolvido]extrair numero de campo entre espaços

    Mensagem  giba_ 24/6/2013, 15:33

    mesma msg! pensei na função direita ou esquerda até o espaço, pode ser feito ? coisa do tipo Direita([CAMPO];até barra?
    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1601
    Registrado : 12/11/2009

    [Resolvido]extrair numero de campo entre espaços Empty Re: [Resolvido]extrair numero de campo entre espaços

    Mensagem  Leandro 24/6/2013, 15:37

    Mas me diga, está fazendo isso em uma consulta ou no VBA?

    Se for na consulta é assim: Meio([string];EmSeq([string];"/")-4;4)

    No VBA: Mid([string],InStr([string],"/")-4,4)

    "string" é o nome do campo.

    avatar
    giba_
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 123
    Registrado : 01/02/2011

    [Resolvido]extrair numero de campo entre espaços Empty Re: [Resolvido]extrair numero de campo entre espaços

    Mensagem  giba_ 24/6/2013, 15:46

    fiz na consulta utilizando
    Meio([string];EmSeq([string];"/")-4;4)
    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1601
    Registrado : 12/11/2009

    [Resolvido]extrair numero de campo entre espaços Empty Re: [Resolvido]extrair numero de campo entre espaços

    Mensagem  Leandro 24/6/2013, 15:59

    Colocou em um campo virtual?

    Veja o exemplo.

    avatar
    giba_
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 123
    Registrado : 01/02/2011

    [Resolvido]extrair numero de campo entre espaços Empty Re: [Resolvido]extrair numero de campo entre espaços

    Mensagem  giba_ 24/6/2013, 17:59

    valeu pela força! a consulta funcionou perfeitamente
    no entanto me deparei com um registro assim, observei que nesse registro não existe a /


    Cópia de ConsGiba[th]K[/th][th]HISTÓRICO[/th]
    #ErroVL. NFE 2450 - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    #ErroVL. NFE 2451 - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1601
    Registrado : 12/11/2009

    [Resolvido]extrair numero de campo entre espaços Empty Re: [Resolvido]extrair numero de campo entre espaços

    Mensagem  Leandro 24/6/2013, 18:16

    Então:


    IIf(EmSeq(string;"/")=0;Meio([string];EmSeq([string];"-")-5;4);Meio([string];EmSeq([string];"/")-4;4))


    Sempre na consulta.

    avatar
    giba_
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 123
    Registrado : 01/02/2011

    [Resolvido]extrair numero de campo entre espaços Empty Re: [Resolvido]extrair numero de campo entre espaços

    Mensagem  giba_ 24/6/2013, 18:22

    fiz apenas uma adaptação usei

    Expr1: SeImed(EmSeq([HISTÓRICO];"/")=0;Meio([HISTÓRICO];EmSeq([HISTÓRICO];"-")-7;4);Meio([HISTÓRICO];EmSeq([HISTÓRICO];"/")-4;4))

    com a sua configuração retornou apenas 2 números, mas valeu pela força
    uma ultima coisa, teria como vc explicar a parte do EmSeq?
    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1601
    Registrado : 12/11/2009

    [Resolvido]extrair numero de campo entre espaços Empty Re: [Resolvido]extrair numero de campo entre espaços

    Mensagem  Leandro 24/6/2013, 18:37

    EmSeq:
    A grosso modo digo-lhe que ela analisa se existe um caractere numa sequência e retorna a posição dessa caractere nessa sequência, ex:

    EmSeq("Giba";"b") = 3

    Mas se quiser uma explicação mais detalhada, até porque essa função não faz só isso, veja: http://office.microsoft.com/pt-br/access-help/funcao-instr-HA001228857.aspx#BMexamples


    Não esqueça o Resolvido no tópico, ok?

    Abraço


    Última edição por Leandro em 24/6/2013, 18:46, editado 1 vez(es)

    avatar
    giba_
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 123
    Registrado : 01/02/2011

    [Resolvido]extrair numero de campo entre espaços Empty Re: [Resolvido]extrair numero de campo entre espaços

    Mensagem  giba_ 24/6/2013, 18:44

    ok! valeu pela força e pela explicação

    Conteúdo patrocinado


    [Resolvido]extrair numero de campo entre espaços Empty Re: [Resolvido]extrair numero de campo entre espaços

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 11:00