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

    Rotinas para cálculo de dígito verificador

    avatar
    badkanye
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 34
    Registrado : 20/11/2011

    Rotinas para cálculo de dígito verificador Empty Rotinas para cálculo de dígito verificador

    Mensagem  badkanye 30/3/2012, 18:11

    Olá boa tarde a todos, estou a desenvolver um aplicativo no Access na para a empresa onde estou a estagiar, mas Confronto-me com alguns problemas.
    Gostaria de criar um verificador de campos Código postal e número contribuinte e quero que faça uma comparação entre código postal e o numero contribuinte, e que o mesmo código possa servir para as restantes Form, e verificar se o código postal contém sete dígitos e o número contribuinte nove.
    Tenho um módulo criado com o nome (modValida. e nesse módulo contem os código com os dados do Brasil que é CPF e o CNPJ.
    Só queria que alterassem os dados de CPF e o CNPJ para CP e NC de Portugal " CP contem sete dígitos e o NC 9"
    Em baixo esta código com os dados de Brasil desenvolvido por: Luiz Cláudio C. V. Rocha
    *********************************************************


    Option Compare Database
    Option Explicit

    '******************************************
    'Rotinas para cálculo de dígito verificador
    'e validação de CNPJ e CPF
    'Autor: Luiz Cláudio C. V. Rocha
    '******************************************

    Public Function fDigCNPJ(CNPJ As String) As String
    'Calcula os dígitos verificadores do CNPJ
    Dim I As Integer
    Dim intFator As Integer
    Dim intTotal As Integer
    Dim intResto

    'Verifica se tem 12 ou 14 dígitos
    If Not (Len(CNPJ) = 12 Or Len(CNPJ) = 14) Then
    Exit Function
    Else
    'Verifica se é numérico
    If Not IsNumeric(CNPJ) Then
    Exit Function
    Else
    'Trunca o CNPJ em 12 caracteres
    CNPJ = Left$(CNPJ, 12)
    End If
    End If

    Inicio:
    'Percorre as colunas (de trás para frente),
    'multiplicando por seus respectivos fatores
    intFator = 2
    intTotal = 0
    For I = Len(CNPJ) To 1 Step -1
    If intFator > 9 Then intFator = 2
    intTotal = intTotal + ((CInt(Mid(CNPJ, I, 1)) * intFator))
    intFator = intFator + 1
    Next I

    'Obtém o resto da divisão por 11
    I = intTotal Mod 11
    'Subtrai 11 do resto
    I = 11 - I
    'O dígito verificador é i
    If I = 10 Or I = 11 Then I = 0
    'Concatena ao CNPJ
    CNPJ = CNPJ & CStr(I)

    If Len(CNPJ) = 13 Then
    'Calcula o segundo dígito
    GoTo Inicio
    End If

    'Retorna os dígitos verificadores
    fDigCNPJ = Right$(CNPJ, 2)
    End Function

    Public Function fDigCPF(CPF As String) As String
    'Calcula os dígitos verificadores do CPF
    Dim I As Integer
    Dim intFator As Integer
    Dim intTotal As Integer
    Dim intResto

    'Verifica se tem 9 ou 11 dígitos
    If Not (Len(CPF) = 9 Or Len(CPF) = 11) Then
    Exit Function
    Else
    'Verifica se é numérico
    If Not IsNumeric(CPF) Then
    Exit Function
    Else
    'Trunca o CPF em 9 caracteres
    CPF = Left$(CPF, 9)
    End If
    End If

    Inicio:
    'Percorre as colunas (de trás para frente),
    'multiplicando por seus respectivos fatores
    intFator = 2
    intTotal = 0
    For I = Len(CPF) To 1 Step -1
    intTotal = intTotal + ((CInt(Mid(CPF, I, 1)) * intFator))
    intFator = intFator + 1
    Next I

    'Obtém o resto da divisão por 11
    I = intTotal Mod 11
    'Subtrai 11 do resto
    I = 11 - I
    'O dígito verificador é i
    If I = 10 Or I = 11 Then I = 0
    'Concatena ao CPF
    CPF = CPF & CStr(I)

    If Len(CPF) = 10 Then
    'Calcula o segundo dígito
    GoTo Inicio
    End If

    'Retorna os dígitos verificadores
    fDigCPF = Right$(CPF, 2)
    End Function

    Public Function fCNPJ(CNPJ As String) As Boolean
    'Verifica se o CNPJ é válido
    Dim strChar As String

    'Verifica se tem 14 caracteres
    If Not Len(CNPJ) = 14 Then
    fCNPJ = False
    Exit Function
    End If

    'Verifica se o dígito verificador confere
    strChar = Mid$(CNPJ, 13, 2)
    If fDigCNPJ(CNPJ) = strChar Then
    fCNPJ = True
    Else
    fCNPJ = False
    End If
    End Function

    Public Function fCPF(CPF As String) As Boolean
    'Verifica se o CPF é válido
    Dim strChar As String

    'Verifica se tem 11 caracteres
    If Not Len(CPF) = 11 Then
    fCPF = False
    Exit Function
    End If

    'Verifica se o dígito verificador confere
    strChar = Mid$(CPF, 10, 2)
    If fDigCPF(CPF) = strChar Then
    fCPF = True
    Else
    fCPF = False
    End If
    End Function



    Atenciosamente:
    Edmilson da Graça


    Última edição por badkanye em 4/4/2012, 17:48, editado 1 vez(es) (Motivo da edição : Projeto final do Curso)
    good guy
    good guy
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1304
    Registrado : 05/02/2010

    Rotinas para cálculo de dígito verificador Empty Rotinas para cálculo de dígito verificador

    Mensagem  good guy 5/4/2012, 19:12

    Olá,

    Tenho um aplicativo que criei para calcular o dígito verificador de uma matrícula de 8 dígitos, sendo que o oitavo é o DV. Vá para o site www.esnips.com\web/eduardovmachado2007sStuff
    e procure o aplicativo e tente fazer as modificações para adequar ao que você quer. Poste aqui o seu código em caso de problemas para ver se dá para ajudar.
    avatar
    badkanye
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 34
    Registrado : 20/11/2011

    Rotinas para cálculo de dígito verificador Empty Re: Rotinas para cálculo de dígito verificador

    Mensagem  badkanye 10/4/2012, 16:47

    Muito obrigado good guy pela sua gentileza em quer me ajudar!
    O link para aceder ao site não está correto ou seja não existe.
    Obrigado!
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    Rotinas para cálculo de dígito verificador Empty Re: Rotinas para cálculo de dígito verificador

    Mensagem  JPaulo 10/4/2012, 17:00

    Edmilson, boa tarde;

    Penso que em Access não existe nada feito, até porque a validação é muito diferente do CPF ou CNPJ.

    Veja aqui o que pode aproveitar;

    http://maracujah.net/software/nif



    .................................................................................
    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

    Rotinas para cálculo de dígito verificador Folder_announce_new Utilize o Sistema de Busca do Fórum...
    Rotinas para cálculo de dígito verificador Folder_announce_new 102 Códigos VBA Gratuitos...
    Rotinas para cálculo de dígito verificador Folder_announce_new Instruções SQL como utilizar...
    good guy
    good guy
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1304
    Registrado : 05/02/2010

    Rotinas para cálculo de dígito verificador Empty Rotinas para cálculo de dígito verificador

    Mensagem  good guy 10/4/2012, 17:06

    Olá badkanye,

    Tente aqui da seção Exemplos Access. Mas o JPaulo tem razão, a validação é bem diferente. De qualquer maneira, fica para estudo.

    http://www.goodguyaccessvba.com.br/download_gratis_37.html

    Conteúdo patrocinado


    Rotinas para cálculo de dígito verificador Empty Re: Rotinas para cálculo de dígito verificador

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 17/5/2024, 10:32