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


5 participantes

    [Resolvido]Como pegar apenas um trecho de uma string?

    wsenna
    wsenna
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 491
    Registrado : 22/12/2009

    [Resolvido]Como pegar apenas um trecho de uma string? Empty [Resolvido]Como pegar apenas um trecho de uma string?

    Mensagem  wsenna 2/9/2014, 01:53

    Olá Feras de plantão, boa noite.

    Mais uma dúvida estarrecedora.

    Numa consulta onde tenho um campo denominado Caminho contendo strinsgs como abaixo:

    C:\Medicina\MEDICINA E - 2.2 CAIXA 01\ABRÃO DAHER ELIAS - PG007\00000001.tif

    Como faço para pegar apenas a parte em vermelho?

    Abraços, WSenna


    Última edição por wsenna em 2/9/2014, 16:09, editado 1 vez(es)
    avatar
    Clebergyn
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 788
    Registrado : 29/08/2012

    [Resolvido]Como pegar apenas um trecho de uma string? Empty Re: [Resolvido]Como pegar apenas um trecho de uma string?

    Mensagem  Clebergyn 2/9/2014, 04:31

    se for so uma string so, sem problemas
    aroga se for varias strings e diferentes uma da outra so tem jeito de houver sequencialização, simetria ou padronização nos strings
    voce sabe se sao varios strings? o que tem de parecido nos strings e o que muda de um pra outro?
    se voce responder essas duas perguntas fica mais simples
    se todos os strings forem parecidos

    no exemplo em anexo, supus que a ultima parte do string  "- PG007\00000001.tif"  tem sempre um "\" depois do codigo e um "- " a esquerda do codigo,
    se for sempre assim da pra fazer para todos

    veja em anexo
    Anexos
    [Resolvido]Como pegar apenas um trecho de uma string? Attachmentpuxastring.zip
    esta em Access 2010
    Você não tem permissão para fazer download dos arquivos anexados.
    (33 Kb) Baixado 19 vez(es)

    pedrovaleriojr gosta desta mensagem

    LiveBrain
    LiveBrain
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 182
    Registrado : 15/05/2011

    [Resolvido]Como pegar apenas um trecho de uma string? Empty Re: [Resolvido]Como pegar apenas um trecho de uma string?

    Mensagem  LiveBrain 2/9/2014, 04:49

    Opa Senna, tudo bem?
    Alguns detalhes para extração da sua string


    Se em todas as suas String existir a sequencia " - PG" então voce pode usar as funções MEIO e EmSeq combinadas como abaixo
    Código:
    Meio([SuaTabela]![SeuCampo];EmSeq(1;[SuaTabela]![SeuCampo];" - PG")+3;5)

    Caso o seu arquivo ( 00000001.tif ) possua sempre o mesmo número de caracteres, então pode usar as funções Meio e Compr combinadas
    Código:
    Meio[SuaTabela]![SeuCampo];Compr([SuaTabela]![SeuCampo])-17;5)


    .................................................................................
    Abraços

    Live Brain Tutoriais

    "Fraca é a pessoa que não conhece a força que possui nos amigos"
    wsenna
    wsenna
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 491
    Registrado : 22/12/2009

    [Resolvido]Como pegar apenas um trecho de uma string? Empty Re: [Resolvido]Como pegar apenas um trecho de uma string?

    Mensagem  wsenna 2/9/2014, 05:51

    Meus Caros Clebergyn e LiveBraim, bom dia.

    Desculpem-me, mas na verdade deixei de expor a real situação. Na verdade o campo sofre uma certa diferença sim.
    O trecho a que me refiri em vermelho na verdade quer dizer as páginas dos livros de registros e pode se apresentar como abaixo:

    C:\Medicina\MEDICINA E - 2.2 CAIXA 01\ADELMO BORGES BRANDÃO - PG001\00000001.tif

    ou

    C:\Medicina\MEDICINA E - 2.2 CAIXA 01\ADILSON SILVEIRA DE ALMEIDA - V PG017\00000001.tif

    ou ainda

    C:\Medicina\MEDICINA E - 2.5 CAIXA 02\ABREU GONÇALVES DE ARAÚJO - VPG054\00000001.tif


    Então, eu pretendo pegar o trecho que se situa entre o traço e a barra invertida.

    Fazendo uma adaptação da sugestão do Amigo LiveBraim a coisa funcionou de certa forma,

    Pág: Meio(tblPastas!Pastas;Compr(tblPastas!Pastas)-18;6) e obtive os resultados para a primeira e terceira hipóteses contudo a segunda ficou de fora.

    Amigo Clebergyn, infelizmente meu access ainda é o 2003 pois na UFF ainda estamos patinando no Windows XP e Office 2003.

    De qualquer forma fico grato pelas tentativas.

    Abraços, WSenna
    avatar
    Clebergyn
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 788
    Registrado : 29/08/2012

    [Resolvido]Como pegar apenas um trecho de uma string? Empty Re: [Resolvido]Como pegar apenas um trecho de uma string?

    Mensagem  Clebergyn 2/9/2014, 06:02

    então, do jeito que voce especificou o anexo abaixo funciona
    Anexos
    [Resolvido]Como pegar apenas um trecho de uma string? Attachmentpuxastring.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (41 Kb) Baixado 26 vez(es)
    wsenna
    wsenna
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 491
    Registrado : 22/12/2009

    [Resolvido]Como pegar apenas um trecho de uma string? Empty Re: [Resolvido]Como pegar apenas um trecho de uma string?

    Mensagem  wsenna 2/9/2014, 07:14

    Oi Clebergyn.

    Como lhe disse, meu access é 2003, não consigo abrir o seu exemplo.

    Wsenna
    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Como pegar apenas um trecho de uma string? Empty Re: [Resolvido]Como pegar apenas um trecho de uma string?

    Mensagem  Leandro 2/9/2014, 12:07

    wsenna e demais forumeiros, bom dia.
    Peço licença para deixar aqui meu pitaco.

    Meio([Teste];EmSeq([Teste];"PG");5)

    wsenna, "Teste" é nome do campo que eu criei, mude para o seu!

    Abraço

    wsenna
    wsenna
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 491
    Registrado : 22/12/2009

    [Resolvido]Como pegar apenas um trecho de uma string? Empty Re: [Resolvido]Como pegar apenas um trecho de uma string?

    Mensagem  wsenna 2/9/2014, 12:51

    Olá Leandro, bom dia.

    Amigão, não funcionou, apresentou a mensagem "Procedimento de chamada inválido".

    Abraços, WSenna
    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Como pegar apenas um trecho de uma string? Empty Re: [Resolvido]Como pegar apenas um trecho de uma string?

    Mensagem  Leandro 2/9/2014, 13:19

    Veja:

    wsenna
    wsenna
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 491
    Registrado : 22/12/2009

    [Resolvido]Como pegar apenas um trecho de uma string? Empty Re: [Resolvido]Como pegar apenas um trecho de uma string?

    Mensagem  wsenna 2/9/2014, 14:15

    Olá Leandro.

    Cara, essa questão já está deixando sem cabelos pois cabeça branca já a tenho.
    Observe que no seu exemplo o resultado apresena-se como PG000, certo?
    Esse trecho da string representa o número da página de registro do aluno num livro de matrícula e como você pode ver alguns alunos estão no verso da págiva daí o V que antecede alguns códigos.
    O problema maior é que alguns digitadores colocam o V junto ao PG e outros dão um espaço tipo: VPG000 ou V PG000.

    Como não posso e não devo alterar os valores já que são documentos microfilmados...

    Abraços, WSenna
    LiveBrain
    LiveBrain
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 182
    Registrado : 15/05/2011

    [Resolvido]Como pegar apenas um trecho de uma string? Empty Re: [Resolvido]Como pegar apenas um trecho de uma string?

    Mensagem  LiveBrain 2/9/2014, 14:19

    Vamos lá WSenna, agora vai hein...
    Fiz vários testes e funcionou perfeitamente para os exemplos que vc deu e também para alguns que criei na tabela.

    Segue anexo.

    o código na consulta foi o descrito abaixo

    Código:
    Final: Meio(Direita([Tabela1]![String];30);EmSeq(1;Direita([Tabela1]![String];30);"-")+2;16-EmSeq(1;Direita([Tabela1]![String];30);"-"))

    Anexos
    [Resolvido]Como pegar apenas um trecho de uma string? AttachmentWSenna.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (14 Kb) Baixado 13 vez(es)


    .................................................................................
    Abraços

    Live Brain Tutoriais

    "Fraca é a pessoa que não conhece a força que possui nos amigos"
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    [Resolvido]Como pegar apenas um trecho de uma string? Empty Re: [Resolvido]Como pegar apenas um trecho de uma string?

    Mensagem  Alexandre Neves 2/9/2014, 14:56

    Boa tarde, Mestre
    Já estava a amassar e ai vai
    Mid(Mid(Mid(str, InStr(1, str, "-") + 1), InStr(1, Mid(str, InStr(1, str, "-") + 1), "-") + 1), 2, InStr(1, Mid(Mid(str, InStr(1, str, "-") + 1), InStr(1, Mid(str, InStr(1, str, "-") + 1), "-") + 1), "\") - 2)


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Como pegar apenas um trecho de uma string? Empty Re: [Resolvido]Como pegar apenas um trecho de uma string?

    Mensagem  Leandro 2/9/2014, 15:03

    Veja essa:

    Meio([Teste];EmSeq(EmSeq([Teste];"Caixa");[Teste];"-")+1;EmSeq(EmSeq(EmSeq([Teste];"Caixa");[Teste];"-")+1;[Teste];"\")-EmSeq(EmSeq([Teste];"Caixa");[Teste];"-")-1)

    wsenna
    wsenna
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 491
    Registrado : 22/12/2009

    [Resolvido]Como pegar apenas um trecho de uma string? Empty Re: [Resolvido]Como pegar apenas um trecho de uma string?

    Mensagem  wsenna 2/9/2014, 16:07

    Senhores, finalmente.

    Testei ambas as soluções e bombaram perfeitamente.
    Fico imensamente grato à todas as Feras que se prontificam a ajudar quando temos dificuldades, por vezes as mais cabeludas, e sempre na certeza de que serão resolvidas.

    Abraços, WSenna

    Conteúdo patrocinado


    [Resolvido]Como pegar apenas um trecho de uma string? Empty Re: [Resolvido]Como pegar apenas um trecho de uma string?

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 21/11/2024, 17:20