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
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, 13:48, editado 1 vez(es) (Motivo da edição : Projeto final do Curso)