MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


2 participantes

    [Resolvido]Referente ao exemplo Valida CPF ou CNPJ

    wsenna
    wsenna
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 491
    Registrado : 22/12/2009

    [Resolvido]Referente ao exemplo Valida CPF ou CNPJ Empty [Resolvido]Referente ao exemplo Valida CPF ou CNPJ

    Mensagem  wsenna 14/2/2014, 00:14

    Salve Mestre JPaulo, boa noite.

    http://maximoaccess.forumeiros.com/t286-valida-cpf-ou-cnpj

    No exemplo postado pelo amigo existe um problema que cito a seguir:
    Caso digitemos o mesmo algarismo até o final o CPF é retornado como válido.

    Abraços, WSenna


    Última edição por wsenna em 14/2/2014, 11:43, editado 2 vez(es)
    wsenna
    wsenna
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 491
    Registrado : 22/12/2009

    [Resolvido]Referente ao exemplo Valida CPF ou CNPJ Empty Referente ao exemplo Valida CPF ou CNPJ

    Mensagem  wsenna 14/2/2014, 01:42

    continuando...

    Pesquisando na Net me deparei com o seguinte código:

    No evento Após Atualizar do campo CPF:

    Private Sub CPF_AfterUpdate()
    Dim N As Integer, P As Integer, S As Integer, D As Double
    D = Left(Me.CPF, 9)

    For N = 1 To 9
    P = (P + Mid(D, N, 1) * N) Mod 11
    Next

    If P < 3 Or P > 9 Then
    P = 0
    End If

    D = D & P
    For N = 1 To 10
    S = (S + Mid(D, N, 1) * (N - 1)) Mod 11
    Next

    If S < 3 Or S > 9 Then
    S = 0
    End If

    If Right(Me.CPF, 2) <> P & S Then
    DoCmd.CancelEvent
    MsgBox "CPF Inválido.   ", vbCritical, " Tentte novamente"
    Me.CPF = Null

    Else

    MsgBox "CPF Válido.   ", vbInformation, "  Infoasic Smart System"
    End If

    End Sub

    O problema é que mesmo informando um CPF válido recebo uma mensagem de CPF Inválido.

    Onde estaria o erro?

    Vide Link: http://criquio.wordpress.com/2013/01/04/video-calcular-e-validar-dv-de-cpf-em-vba-no-access/

    Abraços, WSenna
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11026
    Registrado : 04/11/2009

    [Resolvido]Referente ao exemplo Valida CPF ou CNPJ Empty Re: [Resolvido]Referente ao exemplo Valida CPF ou CNPJ

    Mensagem  JPaulo 14/2/2014, 10:02

    Na altura em que postei o exemplo, optei pelos modulos do Professor Luiz Claudio, por me parecer os mais fiáveis.

    No entanto para o CNPJ funciona lindo, mas para o CPF ele aceita numeros iguais menos se forem zeros.

    Pelas pesquisas que fiz em 2010, todos os modulos disponibilizados fazem isso, até o do macoratti.

    http://www.macoratti.net/val_cpf.htm





    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Referente ao exemplo Valida CPF ou CNPJ Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Referente ao exemplo Valida CPF ou CNPJ Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Referente ao exemplo Valida CPF ou CNPJ Folder_announce_new Instruções SQL como utilizar...
    wsenna
    wsenna
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 491
    Registrado : 22/12/2009

    [Resolvido]Referente ao exemplo Valida CPF ou CNPJ Empty Re: [Resolvido]Referente ao exemplo Valida CPF ou CNPJ

    Mensagem  wsenna 14/2/2014, 10:50

    Grande JPaulo, bom dia.

    Tenho uma outra função que executa bem a validação do CPF.

    Function v_CPF(CPF As String) As String

    If CPF = "11111111111" Or CPF = "22222222222" Or CPF = "33333333333" _
     Or CPF = "44444444444" Or CPF = "55555555555" Or CPF = "66666666666" _
     Or CPF = "77777777777" Or CPF = "88888888888" Or CPF = "99999999999" Or CPF = "00000000000" Then
     MsgBox "O CPF é INVÁLIDO! Digite-o novamente.", vbCritical, "  InfoBasic Smart System"
     Exit Function
    End If

    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 "Atenção: O número do CPF informado é inválido.   " & Chr(13) & "Por favor, digite novamente.   ", vbCritical, "  InfoBasic Smart System"

    DoCmd.CancelEvent

    'MsgBox "CPF válido!", vbInformation
    'Else
    End If

    End Function


    No evento Ao sair do campo CPF:

    Private Sub CPF_Exit(Cancel As Integer)
    If Not IsNull(Me.CPF) Then
    v_CPF (Me.CPF)
    End If

    If IsNull([CPF]) Or IsEmpty([CPF]) Then

    'Dispara uma mensagem ao usuário do computador para que ele tome uma decisão. Se ele escolher Ok, então passa a frente
    If MsgBox("É recomendado o preenchimento do CPF." & Chr(13) & _
    "Deseja não preencher agora e preenchê-lo em outro momento?", vbExclamation + vbOKCancel, " Atenção !!!") = vbOK Then Exit Sub

    'Se escolher e apertar Cancelar, então o foco direciona para caixa de texto (Texto2)
    Me.CPF.SetFocus
    Me.CPF = ""
    Cancel = True
    End If
    End Sub


    Funciona de forma quase perfeita, apenas com um detalhe, caso o CPF inicie com o algarismo 0 (zero) acusa como CPF Inválido e nós sabemos que alguns CPFs podem realmente iniciar com 0 (zero)

    Daí...

    O Mago do VBA teria alguma sugestão?

    Por outro lado, tomando o seu exemplo como base e acrescentando parte da função acima o problema dos algarismos idênticos foi resolvido veja abaixo:

    Abraços, WSenna


    Última edição por wsenna em 14/2/2014, 11:28, editado 1 vez(es)
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11026
    Registrado : 04/11/2009

    [Resolvido]Referente ao exemplo Valida CPF ou CNPJ Empty Re: [Resolvido]Referente ao exemplo Valida CPF ou CNPJ

    Mensagem  JPaulo 14/2/2014, 10:59

    Neste caso o amigão pode utilizar o meu exemplo, que aceita CPF de numeros iguais menos zeros e na validação utilizar então;

    If Me.CPF = "11111111111" Or Me.CPF = "22222222222" Or Me.CPF = "33333333333" _
    Or Me.CPF = "44444444444" Or Me.CPF = "55555555555" Or Me.CPF = "66666666666" _
    Or Me.CPF = "77777777777" Or Me.CPF = "88888888888" Or Me.CPF = "99999999999" Then
    MsgBox "O CPF é INVÁLIDO! Digite-o novamente.", vbCritical, " InfoBasic Smart System"
    Exit Sub
    End If

    Gero aqui para testes;

    http://www.geradorcpf.com/

    Utilizei este CPF valido para teste e funciona;

    089.613.243-90
    Anexos
    [Resolvido]Referente ao exemplo Valida CPF ou CNPJ AttachmentValidaCPF_CNPJ.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (34 Kb) Baixado 49 vez(es)


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Referente ao exemplo Valida CPF ou CNPJ Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Referente ao exemplo Valida CPF ou CNPJ Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Referente ao exemplo Valida CPF ou CNPJ Folder_announce_new Instruções SQL como utilizar...
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11026
    Registrado : 04/11/2009

    [Resolvido]Referente ao exemplo Valida CPF ou CNPJ Empty Re: [Resolvido]Referente ao exemplo Valida CPF ou CNPJ

    Mensagem  JPaulo 14/2/2014, 11:17

    Este feito em 2010, valida o CPF e o CNPJ no mesmo campo;
    Anexos
    [Resolvido]Referente ao exemplo Valida CPF ou CNPJ AttachmentValidaCPF_CNPJ_mesmoCampo.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (27 Kb) Baixado 56 vez(es)


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Referente ao exemplo Valida CPF ou CNPJ Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Referente ao exemplo Valida CPF ou CNPJ Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Referente ao exemplo Valida CPF ou CNPJ Folder_announce_new Instruções SQL como utilizar...
    wsenna
    wsenna
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 491
    Registrado : 22/12/2009

    [Resolvido]Referente ao exemplo Valida CPF ou CNPJ Empty Re: [Resolvido]Referente ao exemplo Valida CPF ou CNPJ

    Mensagem  wsenna 14/2/2014, 11:42

    Grande Mestre, mais uma vez, bom dia.

    Enquanto eu reparava o seu exemplo acrescido do fragmento do código acima e editava minha última resposta verifiquei que o Amigão já tinha postado a mesma solução logo abaixo.

    Contudo, quero exprimir minha satisfação ao perceber que do modo sugerido os CPFs iniciados com 0 (zero) também podem ser validados neste novo modelo.

    Mais uma vez o Mago do VBA acertou em cheio, parabéns.

    Abraços, WSenna
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11026
    Registrado : 04/11/2009

    [Resolvido]Referente ao exemplo Valida CPF ou CNPJ Empty Re: [Resolvido]Referente ao exemplo Valida CPF ou CNPJ

    Mensagem  JPaulo 14/2/2014, 12:09

    Obrigado pelo retorno amigo, o forum agradece.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Referente ao exemplo Valida CPF ou CNPJ Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Referente ao exemplo Valida CPF ou CNPJ Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Referente ao exemplo Valida CPF ou CNPJ Folder_announce_new Instruções SQL como utilizar...

    Conteúdo patrocinado


    [Resolvido]Referente ao exemplo Valida CPF ou CNPJ Empty Re: [Resolvido]Referente ao exemplo Valida CPF ou CNPJ

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 8/11/2024, 01:52