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


4 participantes

    [Resolvido]Extrair nome e sobrenome

    Ronaldo Costa
    Ronaldo Costa
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 287
    Registrado : 14/03/2011

    [Resolvido]Extrair nome e sobrenome Empty [Resolvido]Extrair nome e sobrenome

    Mensagem  Ronaldo Costa 3/9/2021, 13:40

    Olá pessoal!

    Como faço para extrair o nome e o sobrenome de pessoas?

    Exemplo:
    Se o nome for "Pedro Silva do Carmo", deve extrair "Pedro Silva"
    Se o nome for "Pedro da Silva Carmo", deve extrair "Pedro da Silva"

    Quero digitar o nome no campo "nome" do formulário e aí o campo "apelido" já recebe o nome extraído.

    grato...
    Finformática
    Finformática
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1067
    Registrado : 23/03/2010

    [Resolvido]Extrair nome e sobrenome Empty Re: [Resolvido]Extrair nome e sobrenome

    Mensagem  Finformática 4/9/2021, 02:33

    Caro Amigo,

    Veja esse post abaixo se ajuda. Peguei aqui no fórum e me serviu demais.

    Abraço
    Anexos
    [Resolvido]Extrair nome e sobrenome AttachmentSepara Partes Campo.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (21 Kb) Baixado 50 vez(es)

    napoli gosta desta mensagem

    Ronaldo Costa
    Ronaldo Costa
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 287
    Registrado : 14/03/2011

    [Resolvido]Extrair nome e sobrenome Empty Re: [Resolvido]Extrair nome e sobrenome

    Mensagem  Ronaldo Costa 6/9/2021, 11:53

    Olá, Finformática.

    Muito bom seu exemplo. Estou trabalhando algumas adaptações aqui, pois preciso que o resultado seja conforme o exemplo na minha mensagem: Preciso que me retorne "Pedro Silva" ou "Pedro da Silva" quando tem o "da", mas seu exemplo já mim trouxe grande auxílio. Caso possa me mostrar como quero, fique a vontade enquanto tento por aqui também.

    grato...
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3857
    Registrado : 21/04/2011

    [Resolvido]Extrair nome e sobrenome Empty Re: [Resolvido]Extrair nome e sobrenome

    Mensagem  Marcelo David 6/9/2021, 19:20

    Boa tarde senhores,

    Ronaldo,
    pensando na sua necessidade, elaborei essa função.
    Cole em um módulo:

    Código:
    Public Function FncNomeSobrenome(strNomeCompleto As String) As String
        'Função criado por Marcelo David
        'Data: 06/09/2021 - 15:11
        '---------------------------------------------------------------------------
        Dim strNS As String, strSN As String, bArtigo As Boolean, iAux As Integer, iISN As Integer, iFSN As Integer
        
        'Deterninando o primeiro nome:
        strNS = Mid(strNomeCompleto, 1, InStr(strNomeCompleto, " ") - 1)
        
        'A função InStr retorna a posição da primeira ocorrencia encontrada.
        'Por exemplo: Marcelo David
        'Eu quero saber qual a posição inicial do nome David (se contarmos os caracteres da esquerda para direita, será na posição 9.)
        'Aplico assim: InStr("Marcelo David","David")
        'O Resultado será 9, conforme explicação anterior
        
        'A função MID retorna parte de uma cadeia de caracteres baseado em posições predeterminadas.
        'Marcelo Dias David
        'Preciso retornar apenas Dias
        'Dias inicia na posição 9 e mais 4 caracteres para direita compõe Dias
        'Exemplo:
        'Mid("Marcelo Dias David",9 , 4)
        'Retornará Dias
        
        
        'Determinando preposições
        'Determinando "e"
        If InStr(strNomeCompleto, strNS & " e ") > 0 Then strNS = strNS & Mid(strNomeCompleto, InStr(strNomeCompleto, " e "), 2): bArtigo = True
        'Determinando "do"
        If InStr(strNomeCompleto, strNS & " do ") > 0 Then strNS = strNS & Mid(strNomeCompleto, InStr(strNomeCompleto, " do "), 3): bArtigo = True
        'Determinando "dos"
        If InStr(strNomeCompleto, strNS & " dos ") > 0 Then strNS = strNS & Mid(strNomeCompleto, InStr(strNomeCompleto, " dos "), 4): bArtigo = True
        'Determinando "da"
        If InStr(strNomeCompleto, strNS & " da ") > 0 Then strNS = strNS & Mid(strNomeCompleto, InStr(strNomeCompleto, " da "), 3): bArtigo = True
        'Determinando "das"
        If InStr(strNomeCompleto, strNS & " das ") > 0 Then strNS = strNS & Mid(strNomeCompleto, InStr(strNomeCompleto, " das "), 4): bArtigo = True
        
        'Determinar o sobrenome
        'Primeiro verifico se foi usado artigos, para saber a partir de onde é o sobrenome
        If bArtigo = True Then
            'Como foi usado artigo, sei que o sobrenome está a partir do segundo espaço em branco.
            

            'Determino o início do sobrenome
            For i = 1 To Len(strNomeCompleto)
                If Mid(strNomeCompleto, i, 1) = " " Then
                    iAux = iAux + 1
                End If
                'Quando iAux for 2, significa que estamos no segundo espaço em branco, logo, teremos a referencia do inicio do sobrenome
                If iAux = 2 Then
                    iISN = i
                    Exit For
                End If
            Next
            
           'Como já sei onde inicio o sobrenome e o mesmo é a partir do segundo caractere em branco +1, determino o final, que está
           'dentro da cadeia de caracteres iniciado a partir do inicio do sobrenome obtido acima
           strSN = Mid(strNomeCompleto, (iISN + 1), (InStr((iISN + 1), strNomeCompleto, " ")) - (iISN + 1))
            
        End If
        
        FncNomeSobrenome = strNS & " " & strSN
    End Function

    Pode usar a função onde necessitar.
    Por exemplo, para exibir em uma caixa de texto:

    Me!SuaCaixaTexto = FncNomeSobrenome("NomeCompleto")

    NomeCompleto pode ser uma variável, caixa de texto, nome direto, etc.

    Teste, por gentileza.


    .................................................................................
    Aprenda como criar formulário desacoplado.
    Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Extrair nome e sobrenome Marcel11
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Extrair nome e sobrenome Empty Re: [Resolvido]Extrair nome e sobrenome

    Mensagem  JPaulo 7/9/2021, 13:16

    Existe aqui desde 2009;

    http://maximoaccess.forumeiros.com/t11-102-codigos-vba-para-access#14

    Código: Separa Nomes


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

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Extrair nome e sobrenome Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Extrair nome e sobrenome Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Extrair nome e sobrenome Folder_announce_new Instruções SQL como utilizar...
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3857
    Registrado : 21/04/2011

    [Resolvido]Extrair nome e sobrenome Empty Re: [Resolvido]Extrair nome e sobrenome

    Mensagem  Marcelo David 30/9/2021, 15:08

    Bom dia.
    Algum posicionamento nesse assunto? Algumas das instruções atendeu?


    .................................................................................
    Aprenda como criar formulário desacoplado.
    Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Extrair nome e sobrenome Marcel11
    Ronaldo Costa
    Ronaldo Costa
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 287
    Registrado : 14/03/2011

    [Resolvido]Extrair nome e sobrenome Empty Re: [Resolvido]Extrair nome e sobrenome

    Mensagem  Ronaldo Costa 24/11/2021, 13:07

    Fiz o seguinte:

    Num módulo criei 3 funções.


    Public Function fncSplitNome(VarNome As String)

    'Pegar apenas o primeiro nome

    Dim VarSplit As Variant
    Dim i As Integer

    VarSplit = Split(VarNome, " ")

    fncSplitNome = Trim(VarSplit(0))

    End Function

    Public Function fncSplitNomeSeg(VarNome As String)

    'Pegar apenas o primeiro nome

    Dim VarSplit As Variant
    Dim i As Integer

    VarSplit = Split(VarNome, " ")

    fncSplitNomeSeg = Trim(VarSplit(1))

    End Function

    Public Function fncSplitNomeTer(VarNome As String)

    'Pegar apenas o primeiro nome
    On Error Resume Next
    Dim VarSplit As Variant
    Dim i As Integer

    VarSplit = Split(VarNome, " ")

    fncSplitNomeTer = Trim(VarSplit(2))

    End Function


    No evento "ao atualizar do campo nome" coloquei o código abaixo que vai preencher o campo "apelido_func".

    Dim nomeCompleto    As String
    Dim nomePrimeiro    As String
    Dim nomeSegundo     As String
    Dim nomeTerceiro    As String

    nomeCompleto = Me.func_nome
    nomePrimeiro = fncSplitNome([nomeCompleto])
    nomeSegundo = fncSplitNomeSeg([nomeCompleto])
    nomeTerceiro = fncSplitNomeTer([nomeCompleto])

    If nomeSegundo = "DO" Or nomeSegundo = "DOS" Or nomeSegundo = "DA" Or nomeSegundo = "DAS" Or nomeSegundo = "DE" Then
       Me.func_apelido = nomePrimeiro & " " & nomeSegundo & " " & nomeTerceiro
    Else
       Me.func_apelido = nomePrimeiro & " " & nomeSegundo
    End If
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3857
    Registrado : 21/04/2011

    [Resolvido]Extrair nome e sobrenome Empty Re: [Resolvido]Extrair nome e sobrenome

    Mensagem  Marcelo David 24/11/2021, 13:13

    Ótimo que deu certo. Grato pelo retorno.


    .................................................................................
    Aprenda como criar formulário desacoplado.
    Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Extrair nome e sobrenome Marcel11

    Conteúdo patrocinado


    [Resolvido]Extrair nome e sobrenome Empty Re: [Resolvido]Extrair nome e sobrenome

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/3/2024, 11:02