cjsilva2013 3/12/2015, 22:37
Boa noite Senhores(as),
Segue Script para ser usado no form Access para CNPJ e CPF no mesmo Campo...
Foi a forma que encontrei para solucionar o problema. Se servir para vocês por gentileza nos de um retorno... Foi disponibilizado aqui no Fórum pelo amigo Noobezinho... Autoria de JPaulo. Dois grandes feras...
SEGUE:
O Script abaixo tem como Autor:
Copyright © JPaulo MaximoAccess ® 2010
Private Sub Form_Load()
If Me.Status.Value = "FISICO" Then 'Lista de valores na combox com dois valores
Me![SeuCampo_CPF_CNPJ].InputMask = "000.000.000\-00"
Me.lblInforma.Caption = "CPF" 'Rotulo do campo que muda de nome
Else
If Me.Status.Value = "JURIDICO" Then 'Lista de valores na combox com dois valores
Me![SeuCampo_CPF_CNPJ].InputMask = "00\.000\.000\/0000\-00"
Me.lblInforma.Caption = "CNPJ" 'Rotulo do campo que muda de nome
End If
End If
End Sub
Private Sub SuaCombox_AfterUpdate()
If Me.SuaCombox.Value = "FISICO" Then 'Lista de valores na combox com dois valores
Me![SeuCampo_CPF_CNPJ].InputMask = "000.000.000\-00"
Me.lblInforma0.Caption = "CPF" 'Rotulo do campo que muda de nome
Me.Status.Value = Me.SuaCombox.Value
Me.SeuCampo_CPF_CNPJ.SetFocus
Else
If Me.SuaCombox.Value = "JURIDICO" Then 'Lista de valores na combox com dois valores
Me![SeuCampo_CPF_CNPJ].InputMask = "00\.000\.000\/0000\-00"
Me.lblInforma0.Caption = "CNPJ" 'Rotulo do campo que muda de nome
Me.Status.Value = Me.SuaCombox.Value
Me.SeuCampo_CPF_CNPJ.SetFocus
End If
End If
End Sub
Módulo = BasValida
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