MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    Extrair primeiro nome em um campo cujo nome seja precedido por um código e precedido pelo sobrenome

    HARYSOHN
    HARYSOHN
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12227
    Registrado : 01/03/2011

    Extrair primeiro nome em um campo cujo nome seja precedido por um código e precedido pelo sobrenome Empty Extrair primeiro nome em um campo cujo nome seja precedido por um código e precedido pelo sobrenome

    Mensagem  HARYSOHN em 16/9/2013, 19:06

    Suponha que seu campo seja no formato XXXX - Nome NomeMeio Sobrenome
    << 34HDHD - Fulano de Tal.



    Para extrair apenas o primeiro nome:



    Utilzamos a primeira exmpressão para retirar o Código afrente do nome utilizando o Mid
    >> Meio([NomeCampo];RevEmSeq([NomeCampo];"-")+2)


    Utilizaremos agora o Left para pegar a primeira parte do nome

    Observe a sintaxe do Left:  Left(Campo,X), onde X é o número de carateres que deseja pegar a partir da esquerda.

    Para conseguirmos X utilizatemos a expressão InStr que conta a posição da ocorrencia de determinado caracter, no caso o espaço.



    Exemplo da função InStr

    Este exemplo usa a função InStr para retornar a posição da primeira ocorrência de uma seqüência de caracteres dentro de outra.
    Código:
    Dim SearchString, SearchChar, MyPos
    SearchString ="XXpXXpXXPXXP"    ' Seqüência de caracteres a ser pesquisada.
    SearchChar = "P"    ' Procurar por "P".

    ' Uma comparação de texto iniciando na posição 4. Retorna 6.
    MyPos = Instr(4, SearchString, SearchChar, 1)

    ' Uma comparação binária iniciando na posição 1. Retorna 9.
    MyPos = Instr(1, SearchString, SearchChar, 0)

    ' A comparação é binária, como padrão (o último argumento é omitido).
    MyPos = Instr(SearchString, SearchChar)    ' Retorna 9.

    MyPos = Instr(1, SearchString, "W")    ' Retorna 0.
    Entao X será a posição do primeiro espaço após o primeiro nome, retirando 1 que é justamente o espaço

    >> Expr2: Esquerda(Meio([NomeCampo];RevEmSeq([NomeCampo];"-")+2);EmSeq(4;Meio([NomeCampo];RevEmSeq([NomeCampo];"-")+2);" ";1)-1)

      Data/hora atual: 4/12/2020, 10:47