USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Validação de CPF em VB
André
não registrado
Postada em 07/05/2008 12:42 hs   
Ola pessoal,

Segue ai um código que serve para validar CPF.Desse jeito que fiz aparentemente deu certo porque o resultado dos calculos é igual aos 2 digitos verificadores do cpf valido digitado.Mas no final da como invalido!

segue o código
Tem algumas linhas ai desnecessarias que só fiz pra ver se o resultado bate mesmo.

Se algume puder ver o erro Valew

Private Sub CmdValidaCPF_Click()

Dim aux, d1, d2, d3, d4, i As Integer
Dim cpfbyte(11), cpfbyte2(11) As Integer
Dim cpf As String

cpf = Text1.Text

aux = 10

For i = 1 To 11
  cpfbyte(i) = Mid(cpf, i, 1)
Next i
Print " CPFBYTE 10 " & cpfbyte(10)
Print " CPFBYTE 11 " & cpfbyte(11)
For i = 1 To 9
  cpfbyte2(i) = cpfbyte(i) * aux
  Print cpfbyte2(i)
  aux = aux - 1
Next i
aux = 0
For i = 1 To 9
  aux = cpfbyte2(i) + aux
  Print aux
Next i
d1 = aux  11
Print "D1 " & d1
d2 = d1 * 11
Print "D2 " & d2
d3 = aux - d2
Print "D3 " & d3
If (d3 = 0) Or (d3 = 1) Then
  d3 = 0
Else
  d3 = 11 - d3
End If
MsgBox " Digito 1 =  " & d3

aux = 11

For i = 1 To 10
  cpfbyte2(i) = cpfbyte(i) * aux
  Print cpfbyte2(i)
  aux = aux - 1
Next i
aux = 0
For i = 1 To 10
  aux = cpfbyte2(i) + aux
  Print aux
Next i
d1 = aux  11
Print "D1 " & d1
d2 = d1 * 11
Print "D2 " & d2
d4 = aux - d2
Print "D4 " & d4
If (d4 = 0) Or (d4 = 1) Then
  d4 = 0
Else
  d4 = 11 - d4
End If
MsgBox "Digito 2 = " & d4

If (d3 <> cpfbyte(10)) Or (d4 <> cpfbyte(11)) Then
  MsgBox " CPF INVALIDO!!!", vbExclamation, "VALIDAR CPF"
Else
  MsgBox " CPF CONFERE ! ", vbExclamation, "VALIDAR CPF"
End If

End Sub
     
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
Postada em 07/05/2008 15:51 hs            
eu uso a seguinte função que é uma beleza
 
Public Function isCPF(ByVal pCPF As String) As Boolean
   
    Dim Conta As Integer, Soma As Integer, Resto As Integer, Passo As Integer
   
    isCPF = False: pCPF = Trim(pCPF)
   
    If Len(pCPF) <> 11 Then
        Exit Function
    End If
   
    For Passo = 11 To 12
        Soma = 0
        For Conta = 1 To Passo - 2
            Soma = Soma + Val(Mid(pCPF, Conta, 1)) * (Passo - Conta)
        Next
       
        Resto = 11 - (Soma - (Int(Soma / 11) * 11))
       
        If Resto = 10 Or Resto = 11 Then Resto = 0
       
        If Resto <> Val(Mid(pCPF, Passo - 1, 1)) Then
            Exit Function
        End If
    Next
   
    isCPF = True
End Function
 
' como utilizar
 
Private Sub Command1_Click()
If isCPF(Text1.Text) = True Then
MsgBox "CPF é válido", vbInformation
Else
MsgBox "CPF é inválido!", vbCritical
End If
End Sub
     
Perci
MATÃO
SP - BRASIL
ENUNCIADA !
Postada em 07/05/2008 16:57 hs            
Treze, uma vez encontrei uma rotina na NET para realizar essa tarefa, mas ela é muito extensa. Vou testar amanhã e se essa função que você usa funcionar perfeitamente, vou alterar a minha. Esta é muito mais fácil de se entender.
Valeu.
Até mais.
   
LCRamos
Pontos: 2843
GOIANIA
GO - BRASIL
Postada em 16/09/2008 00:30 hs            
Muito Interessante, bem compacta e pode ser adaptada para o CNPJ também.
 
Muito boa.
 
vlu//
     
--
não registrado
Postada em 15/12/2008 13:11 hs   
Simples e boa!!

vlw
     
fabio
não registrado
Postada em 26/05/2009 09:14 hs   
voces porderiam me explicar essa funçao que valida o cpf que fiquei meio perdido nao to entendo o que ela ta afzendo apesar de funcionando
obrigado
     
Página(s): 1/3      PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2021   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página