MaximoAccess

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

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    Validação de Número de Documento do Cartão de Cidadão - Portugal

    Compartilhe
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4473
    Registrado : 15/03/2013

    Validação de Número de Documento do Cartão de Cidadão - Portugal

    Mensagem  ahteixeira em Sex 31 Out 2014, 14:46

    Olá , partilho exemplo de validação do Cartão de Cidadão Português.
    Adaptado para Ms Access a partir [Você precisa estar registrado e conectado para ver este link.].
    Código:
    Function ValidarNumeroDocumentoCC(numeroDocumento As String)
    '===============================================================================================================
    'Álvaro Teixeira 2014 - Validação de Número de Documento do Cartão de Cidadão - Portugal
    'Versão 1.1 (141103)
    'Adaptado para Ms Access a partir de http://www.cartaodecidadao.pt/images/stories/Algoritmo_Num_Documento_CC.pdf
    'Exemplo:  ValidarNumeroDocumentoCC("000000000zz4")
    '===============================================================================================================
    ValidarNumeroDocumentoCC = False
    ccDigito = ""
    ccNum = 0
    ccSoma = 0

    numeroDocumento = UCase(Replace(numeroDocumento, " ", ""))  'retira espaços, converte para maiuscula

        
        If Len(numeroDocumento) <> 12 Then  '
            MsgBox "Tamanho inválido para número de documento.", vbInformation, ""
            Exit Function
        End If
        
        For i = Len(numeroDocumento) To 1 Step -1
            ccDigito = Mid(numeroDocumento, i, 1)
            
            If Asc(ccDigito) > 47 And Asc(ccDigito) < 58 Then  'numero [0..9]
                ccNum = ccDigito
            Else
                If Asc(ccDigito) > 64 And Asc(ccDigito) < 91 Then  'numero [A..Z]
                    ccNum = Asc(ccDigito) - 55   ' converte para valor
                Else
                    MsgBox "Dígito inválido no número de documento.", vbInformation, ""
                    Exit Function
                End If
            End If

            If Int(13 - i) Mod 2 = 0 Then 'para ober o numero da posição a contar da direita e verificar se é par
                ccNum = ccNum * 2
                If ccNum >= 10 Then ccNum = ccNum - 9
            End If

            ccSoma = ccSoma + ccNum
        Next

        If ccSoma Mod 10 = 0 Then ValidarNumeroDocumentoCC = True
    End Function
    Todas as contribuições ou sugestões são bem-vindas.
    Abraço
    Anexos
    Valida_Cartao_Cidadao_v1_1.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (18 Kb) Baixado 127 vez(es)


    Última edição por ahteixeira em Sab 22 Abr 2017, 21:30, editado 2 vez(es)
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: Validação de Número de Documento do Cartão de Cidadão - Portugal

    Mensagem  JPaulo em Seg 03 Nov 2014, 14:46

    Ola;

    Obrigado pela contribuíção, foi testado e está funcional.


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

    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]

    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4473
    Registrado : 15/03/2013

    Re: Validação de Número de Documento do Cartão de Cidadão - Portugal

    Mensagem  ahteixeira em Seg 03 Nov 2014, 14:53

    Obrigado Mestre.
    Abraço cheers
    avatar
    mirsofy
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 283
    Registrado : 09/07/2011

    Re: Validação de Número de Documento do Cartão de Cidadão - Portugal

    Mensagem  mirsofy em Seg 03 Nov 2014, 18:35

    obrigado
    belo exemplo

    mirsofy

      Data/hora atual: Sab 21 Out 2017, 11:18