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


2 participantes

    [Resolvido]Extrair 2 primeiras consoantes de um Nome Proprio

    avatar
    CAFO
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4
    Registrado : 12/05/2013

    [Resolvido]Extrair 2 primeiras consoantes de um Nome Proprio Empty [Resolvido]Extrair 2 primeiras consoantes de um Nome Proprio

    Mensagem  CAFO 12/5/2013, 10:52

    Olá Pessoal

    Sou um iniciante, e gostava de extrair as 2 primeiras consoantes de um campo=Nome próprio num formulário.

    Se alguém pudesse ajudar ficava muito agradecido

    Obrigada
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3880
    Registrado : 04/04/2010

    [Resolvido]Extrair 2 primeiras consoantes de um Nome Proprio Empty Re: [Resolvido]Extrair 2 primeiras consoantes de um Nome Proprio

    Mensagem  Avelino Sampaio 12/5/2013, 11:26

    Seja benvindo!

    Um bom exercício que te passaram. Nele vc poderá exercitar a combinação de diversas funções existentes do VBA.

    Segue uma função para o seu caso. Copie para um módulo global

    Código:
    Option Compare Database
    Public Const l = "bcdfghjklmnpqrstwvyxz"

    Public Function fncExtrairConsoante(strNome As String) As String
    Dim j%, letra$, seq$
    Dim k As Byte
    For j = 1 To Len(strNome)
        letra = Mid(strNome, j, 1)
        Select Case InStr(l, letra)
            Case Is > 0
                seq = seq & letra
                k = k + 1
                If k = 2 Then
                    fncExtrairConsoante = seq
                    Exit For
                End If
                If k = j Then fncExtrairConsoante = seq
        End Select
    Next
    If k = 0 Then fncExtrairConsoante = "-"
    End Function

    Agora é só aplicar na origem do campo resultado.

    =fncExtrairConsoante([NomeDoCampoAnalisado])

    Observe que vc vai precisar entender as funções Len(),Mid(),Instr(). Quer aprender essas funções em alta velocidade ? então assista esta minha vídeo-aula:

    http://www.usandoaccess.com.br/tutoriais/tuto2.asp?id=1#inicio

    Bom estudo!


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    avatar
    CAFO
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4
    Registrado : 12/05/2013

    [Resolvido]Extrair 2 primeiras consoantes de um Nome Proprio Empty Re: Extrair 2 primeiras consoantes de um Nome Proprio

    Mensagem  CAFO 12/5/2013, 16:16

    Caro Avelino Sampaio

    Obrigada pelo V/ resposta, mas desculpe se me está a falhar alguma coisa, mas dá-me e a declaração da constante "Public Const l = "bcdfghjklmnpqrstwvyxz"" dá-me erro.

    Se me puderem ajudar, ficaria muito agradecido.
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3880
    Registrado : 04/04/2010

    [Resolvido]Extrair 2 primeiras consoantes de um Nome Proprio Empty Re: [Resolvido]Extrair 2 primeiras consoantes de um Nome Proprio

    Mensagem  Avelino Sampaio 12/5/2013, 17:39

    Altere para:

    Código:
    Public Function fncExtrairConsoante(strNome As String) As String
    Dim j%, letra$, seq$
    Dim k As Byte
    For j = 1 To Len(strNome)
        letra = Mid(strNome, j, 1)
        Select Case InStr("bcdfghjklmnpqrstwvyxz", letra)
            Case Is > 0
                seq = seq & letra
                k = k + 1
                If k = 2 Then
                    fncExtrairConsoante = seq
                    Exit For
                End If
                If k = j Then fncExtrairConsoante = seq
        End Select
    Next
    If k = 0 Then fncExtrairConsoante = "-"
    End Function

    Sucesso!


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    avatar
    CAFO
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4
    Registrado : 12/05/2013

    [Resolvido]Extrair 2 primeiras consoantes de um Nome Proprio Empty Re: Extrair 2 primeiras consoantes de um Nome Proprio

    Mensagem  CAFO 13/5/2013, 22:40

    Um muito Obrigada. Consegui cheers
    avatar
    CAFO
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4
    Registrado : 12/05/2013

    [Resolvido]Extrair 2 primeiras consoantes de um Nome Proprio Empty alterar as consoantes com acentos para sem acentos

    Mensagem  CAFO 14/5/2013, 10:52

    Caros Amigos

    Na sequência do anterior tenho o seguinte:

    "
    Private Sub AbrevNomeproprio_BeforeUpdate(Cancel As Integer)
    Function fncExtrairConsoante(strNome As String) As String
    Dim z%, letra$, seq$
    Dim a As Byte
    For a = 1 To Len(strNome)
    letra = Mid(strNome, a, 1)
    Select Case InStr("aAáÁãÃàÀâÂeEéÉèÈêÊiIíÍìÌîÎoOóÓòÒõÕôÔuUúÚùÙûÛ", letra)
    Case Is > 0
    seq = seq & letra
    k = k + 1
    If k = 2 Then
    fncExtrairConsoante = LCase(seq)
    Exit For
    End If
    If k = a Then fncExtrairConsoante = LCase(seq)
    End Select
    Next
    End Function
    "

    Agora, precissava de alterar as consoantes com acentos para sem acentos

    Obrigada

    Conteúdo patrocinado


    [Resolvido]Extrair 2 primeiras consoantes de um Nome Proprio Empty Re: [Resolvido]Extrair 2 primeiras consoantes de um Nome Proprio

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/4/2024, 04:58