Access inicio | | | | | |
Olá,
Seja Bem Vindo ao Blog.

Conecte-se ou registre-se e utilize gratuitamente este equipamento, temos exemplos referente a criação de banco de dados e desenvolvimento de softwares e programas utilizando o Microsoft Access.


Administração do Blog AccessDoProgramador.

Gerar CPF Válido de forma automática por MS Access e VBA

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

14112014

Mensagem 

Gerar CPF Válido de forma automática por MS Access e VBA






Pessoal,

A partir da necessidade de um colega de fórum, criei um algoritmo para gerar automaticamente CPF válidos. Pode servir de ferramenta para algum de nós uma hora dessas.

A função:

Sub gerarCPF()
Dim kX
Dim iX As Integer
Dim pesoX As Integer
Dim apuracaoX As Integer
Dim restoX
Dim SomaX
Dim primeiroCV
Dim kY
Dim iY As Integer
Dim pesoY As Integer
Dim apuracaoY As Integer
Dim restoY
Dim SomaY
Dim segundoCV
Dim nRand
Dim nAleatorio As String
'Gerar uma sequência qualquer de 9 números
Randomize
  For i = 0 To 8
     nRand = Int((9 * Rnd) + 1)
     If i = 0 Then
         nAleatorio = nRand
      Else
         nAleatorio = nAleatorio & "." & nRand
     End If
  Next i
kX = Split(nAleatorio, ".")
'Gerar o Primeiro Digito Verificador
pesoX = 10
  For iX = 0 To 8
     apuracaoX = kX(iX) * pesoX
     pesoX = pesoX - 1
     SomaX = SomaX + apuracaoX
  Next iX
restoX = SomaX Mod 11
  If restoX < 2 Then
       primeiroCV = 0
    Else
       primeiroCV = 11 - restoX
  End If
resultadoX = nAleatorio & "." & primeiroCV
kY = Split(resultadoX, ".")
'Gerar o Segundo Digito Verificador
pesoY = 11
  For iY = 0 To 9
     apuracaoY = kY(iY) * pesoY
     pesoY = pesoY - 1
     nSomaY = nSomaY + apuracaoY
  Next iY
restoY = nSomaY Mod 11
  If restoY < 2 Then
       segundoCV = 0
    Else
       segundoCV = 11 - restoY
  End If
'Resultado:
Me.txtCPFValido = Replace(resultadoX & "." & segundoCV, ".", "")
End Sub
 

Para chamar, coloque no evento que desejar:
Call gerarCPF()

O exemplo:
https://dl.dropboxusercontent.com/u/8080696/BAP/Ferramentas/GerarCPF.zip


Última edição por Dilson em Ter 15 Set 2015 - 7:37, editado 1 vez(es)


avatar
Dilson
Facilitador
Facilitador

Brasil


http://www.dadosweb.com

Voltar ao Topo Ir em baixo

- Tópicos similares
Compartilhar este artigo em: diggdeliciousredditstumbleuponslashdotyahoogooglelive

Gerar CPF Válido de forma automática por MS Access e VBA :: Comentários

avatar

Mensagem em Sab 15 Nov 2014 - 20:53 por Dilson

Eu dei uma enxugada no código retirando:
Dim pesoIntX
Dim pesoIntY
pesoIntX = Split(SomaX / 11, ",")
pesoIntY = Split(nSomaY / 11, ",")

Essas quatro linhas não influenciam em nada. Inicialmente eu tracei uma lógica com elas e depois resolvi dividindo a soma com o Mod.

O exemplo na postagem inicial está atualizado.

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum