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


3 participantes

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

    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Alvaro Teixeira 31/10/2014, 14:46

    Olá , partilho exemplo de validação do Cartão de Cidadão Português.
    Adaptado para Ms Access a partir deste manual.
    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ção de Número de Documento do Cartão de Cidadão - Portugal AttachmentValida_Cartao_Cidadao_v1_1.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (18 Kb) Baixado 180 vez(es)


    Última edição por ahteixeira em 22/4/2017, 21:30, editado 2 vez(es)

    LeoStar gosta desta mensagem

    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  JPaulo 3/11/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.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    Validação de Número de Documento do Cartão de Cidadão - Portugal Folder_announce_new Utilize o Sistema de Busca do Fórum...
    Validação de Número de Documento do Cartão de Cidadão - Portugal Folder_announce_new 102 Códigos VBA Gratuitos...
    Validação de Número de Documento do Cartão de Cidadão - Portugal Folder_announce_new Instruções SQL como utilizar...
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Alvaro Teixeira 3/11/2014, 14:53

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


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  mirsofy 3/11/2014, 18:35

    obrigado
    belo exemplo

    mirsofy

    Conteúdo patrocinado


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

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 26/4/2024, 16:09