Ir para conteúdo
Fórum Script Brasil
  • 0

Problema Validação Cpf


BRUCCE

Pergunta

Bom dia!

Essa pergunta, especialmente vai para o MrMajl, pois foi ele que me ajudou a configurar.

MrMarjl,

a formula p/ Validação de CPF, consegui implantar ontem, da maneira que você havia dito.

Mas estou com o seguinte problema.

quando digito um numero invalido de CPF, aparece a notifivação: CPF INVALIDO, mas ele inclui normalmente no campo. quando APAGO o numero incorreto, e quero deixar o campo em BRANCO, aparece a mensagem: ERRO EM TEMPO DE EXECUÇÃO '94'

Uso de "Null" Inválido

O que posso fazer para acertar isso?

P.S: Obrigado por todas as dicas que você me fornece até hoje! Estou aprendendo muito, não só com você, mas com todos do fórum.!

Abçs

Link para o comentário
Compartilhar em outros sites

17 respostass a esta questão

Posts Recomendados

  • 0

ummmmm me parece que este erro está ocorrendo ao se tentar fazer a verificação (ou validação) a função tenta pegar o conteúdo mais o que ela encontra é nulo, então ocorre o erro faça um if para testar o conteúdo do seu campo antes de validar, e somente execute a função no caso de realmente ter conteúdo, algo assim:

if not isnull(me.seuCampoCPF) then

dvCPF()

end if

ok?

Link para o comentário
Compartilhar em outros sites

  • 0

MrMajl, Humm, Bom dia!

Coloquei as funcões assim?

(Evento Antes de Atualizar)Private Sub CPF_AfterUpdate()

If Not IsNull(Me.CPF) Then

v_CPF (Me.CPF)

End If

End Sub

(Evento Após Atualizar)

Private Sub CPF_BeforeUpdate(Cancel As Integer)

v_CPF (Me.CPF)

End Sub

Agora quando eu digito um número de CPF invalido, o sistema não aceita e não pula p/ o proximo campos, porém se eu apago o numero digitado, ele da o mesmo ERRO EM TEMPO DEEXECUÇÃO '94' Uso de "Null" Inválido, como posso resolver isso....

Ah, como posso implancar a Função UNDO

Obrigado!

Link para o comentário
Compartilhar em outros sites

  • 0

Hum, segue abaixo a função p/ validação (ela esta em um módulo)

Quanto aquele erro de Execução, já fiz o que você falou, deu certo,

Obrigado

Function v_CPF(CPF As String) As String

Dim lngSoma, lngInteiro As Long

Dim intNumero, intMais, i, intResto As Integer

Dim intDig1, intDig2 As Integer

Dim strDigVer, strcampo, strCaracter, StrConf As String

Dim dblDivisao As Double

lngSoma = 0

intNumero = 0

intMais = 0

strcampo = Left(CPF, 9)

strDigVer = Right(CPF, 2)

For i = 2 To 10

strCaracter = Right(strcampo, i - 1)

intNumero = Left(strCaracter, 1)

intMais = intNumero * i

lngSoma = lngSoma + intMais

Next i

dblDivisao = lngSoma / 11

lngInteiro = Int(dblDivisao) * 11

intResto = lngSoma - lngInteiro

If intResto = 0 Or intResto = 1 Then

intDig1 = 0

Else

intDig1 = 11 - intResto

End If

strcampo = strcampo & intDig1

lngSoma = 0

intNumero = 0

intMais = 0

For i = 2 To 11

strCaracter = Right(strcampo, i - 1)

intNumero = Left(strCaracter, 1)

intMais = intNumero * i

lngSoma = lngSoma + intMais

Next i

dblDivisao = lngSoma / 11

lngInteiro = Int(dblDivisao) * 11

intResto = lngSoma - lngInteiro

If intResto = 0 Or intResto = 1 Then

intDig2 = 0

Else

intDig2 = 11 - intResto

End If

StrConf = intDig1 & intDig2

v_CPF = StrConf

'If dvcpf = strDigVer Then

Rem 999.999.999-99

'CPF = Mid(CPF, 1, 3) & "." & Mid(CPF, 4, 6) & "." & Mid(CPF, 7, 9) & "-" & Right(CGC, 2)

'dvcpf = CPF

If v_CPF <> strDigVer Then

'Else

MsgBox "CPF inválido", vbCritical

DoCmd.CancelEvent

'MsgBox "CPF válido!", vbInformation

'Else

End If

End Function

Link para o comentário
Compartilhar em outros sites

  • 0

Fera seguinte toh te passando o procedimento completo, que deve ser colocado na propriedade de evento "após atualizar" do seu campo CPF, ou no evento "ao receber foco" do campo seguinte ao CPF.

dim guarda as variant

guarda=me.cpf

If Not IsNull(Me.CPF) Then

If Len(Trim(Me.CNPJ)) = 11 Then

Rem 99999999999

Rem 12345678901

v_CPF (Me.CPF)

me.cpf.value = left(Guarda, 3) & "." & mid(Guarda, 4, 3) & "." & mid(Guarda, 7, 3) & "-" & might(Guarda, 2)

else

msgbox "Quantidade de números digitados não é válida! Por favor digite comente numeros (99999999999)",vbokonly+vbinformation

me.cpf.setfocus

End If

End If

Bom se fizer do jeito que te disse não terá erro, eu sinceramente acho que se você colocar esse código no campo seguinte ao CPF ele surta um efeito melhor.

Link para o comentário
Compartilhar em outros sites

  • 0

MrMajl, eu fiz o seguinte.

Copie a formula que você me passou e coloquei no EVENTO AO RECEBER FOCO (do campos seguinte ao CPF).

Quando entro para fazer o cadastro e chego a esse campo, aparece o erro: ERRO DE COMPILAÇÃO ERRO NA SINTAXE.

Private Sub Título_GotFocus()

Dim guarda As Variant

guarda = Me.CPF

If Not IsNull(Me.CPF) Then

If Len(Trim(Me.CNPJ)) = 11 Then

Rem 99999999999

Rem 12345678901v_CPF (Me.CPF)

Me.CPF.Value = Left(guarda, 3) & "." & Mid(guarda, 4, 3) & "." & Mid(guarda, 7, 3) & "-" & (guarda , 2)Else

MsgBox "Quantidade de números digitados não é válida! Por favor digite comente numeros (99999999999)", vbOKOnly + vbInformation

Me.CPF.SetFocus

End If

End If

End Sub

Link para o comentário
Compartilhar em outros sites

  • 0

Eu também uso mascara de entrada para o CPF, será por isso que não esta funcionando?

bom, aqui codigo funcionou perfeitamente do jeito que é.. so tive que configurar porque uso mascara de entrada.

e to usando no Antes de Atualizar mesmo, assim ele não pula para proximo campo nem armazena um numero errado de cpf.

Link para o comentário
Compartilhar em outros sites

  • 0

talvez.. faça o seguinte

retire os apostrofes dos campos marcados do codigo:

'If dvcpf = strDigVer Then

Rem 999.999.999-99

'CPF = Mid(CPF, 1, 3) & "." & Mid(CPF, 4, 6) & "." & Mid(CPF, 7, 9) & "-" & Right(CGC, 2)

'dvcpf = CPF

ficando assim

If dvcpf = strDigVer Then

Rem 999.999.999-99

CPF = Mid(CPF, 1, 3) & "." & Mid(CPF, 4, 6) & "." & Mid(CPF, 7, 9) & "-" & Right(CGC, 2)

dvcpf = CPF

Editado por Humm
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...