MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

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

    [Resolvido]limpar campo após erro

    Compartilhe

    MarceloF
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 23
    Registrado : 22/09/2014

    [Resolvido]limpar campo após erro

    Mensagem  MarceloF em Qui 23 Jun 2016, 06:23

    Caros
    Tenho o seguinte código no final da validação do CPF

    ----

    If DVCPF = strDigVer Then
    MsgBox "CPF válido"
    Else
    MsgBox "-----CPF inválido-----", vbCritical
    DoCmd.CancelEvent
    End If
    End Function

    ----
    Gostaria de, ao detectar o CPF como inválido, voltasse para o campo CPF e limpasse o mesmo...
    Já tentei com
    Me.[CPF] = ""

    Com
    CPF.Value=Null

    Não encontrei uma solução.

    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3348
    Registrado : 04/04/2010

    Re: [Resolvido]limpar campo após erro

    Mensagem  Avelino Sampaio em Qui 23 Jun 2016, 07:17

    Marcelo,

    utilize o evento "antes de atualizar" do campo CPF.  Exemplo:

    Private Sub CPF_BeforeUpdate(Cancel As Integer)
    ...
    ...
    If DVCPF = strDigVer Then
       MsgBox "CPF Inválido..."
       Cancel = True
       CreateObject("Wscript.shell").SendKeys "{esc}"
    End If
    End Sub


    Veja também este meu artigo sobre validação de CPF e CNPJ

    [Você precisa estar registrado e conectado para ver este link.]

    Aguardamos


    .................................................................................
    ============ Quer aprender Access em alta velocidade ? ============

    || [Você precisa estar registrado e conectado para ver esta imagem.] Acesse o site UsandoAccess.com.br e veja um ótimo kit de ensino que tenho para você.

    ===========================================================

    MarceloF
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 23
    Registrado : 22/09/2014

    Re: [Resolvido]limpar campo após erro

    Mensagem  MarceloF em Sex 24 Jun 2016, 09:12

    Olá Avelino...
    O código que me passou funciona, mas aí cancela o formulário todo.
    Minha situação é a seguinte:
    Tenho os campos mais ou menos assim:
    - Id
    - Contratante
    - DataNasc
    - Endereco
    - ...
    - ...
    - CPF  (aqui valida o cpf)
    - RG
    - ...
    - ...
    - RespContratante
    - RespCPF (aqui também valida o cpf)
    - RespEndereco

    Então, se uso a função que passou, cancela tudo o que já foi preenchido. Eu preciso só que volte ao campo CPF e limpe o CPF que está errado, mas permaneça no mesmo formulário já preenchido com diversos outros dados.
    Hoje tenho isso, mas só avisa que há erro e segue normalmente para o próximo campo.

    If DVCPF = strDigVer Then
    MsgBox "CPF válido"
    Else
    MsgBox "-----CPF inválido-----", vbCritical
    DoCmd.CancelEvent
    End If
    End Function
    (aqui acaba a função de verificação do CPF)

    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3227
    Registrado : 20/04/2011

    Re: [Resolvido]limpar campo após erro

    Mensagem  Silvio em Sex 24 Jun 2016, 09:24

    Se me permitem...

    If DVCPF = strDigVer Then
    MsgBox "CPF válido"
    Else
    MsgBox "-----CPF inválido-----", vbCritical
    DoCmd.CancelEvent
    me.dvcpf.setfocus
    me.dvcfp = ""

    End If
    End Function

    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3348
    Registrado : 04/04/2010

    Re: [Resolvido]limpar campo após erro

    Mensagem  Avelino Sampaio em Sex 24 Jun 2016, 09:30

    Ok, tente desta forma

    Private Sub CPF_BeforeUpdate(Cancel As Integer)
    ...
    ...
    If DVCPF = strDigVer Then
    MsgBox "CPF Inválido..."
    Cancel = True
    CreateObject("Wscript.shell").SendKeys "{f2}"
    CreateObject("Wscript.shell").SendKeys "{DELETE}"
    End If
    End Sub


    Aguardamos


    .................................................................................
    ============ Quer aprender Access em alta velocidade ? ============

    || [Você precisa estar registrado e conectado para ver esta imagem.] Acesse o site UsandoAccess.com.br e veja um ótimo kit de ensino que tenho para você.

    ===========================================================

    MarceloF
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 23
    Registrado : 22/09/2014

    Re: [Resolvido]limpar campo após erro

    Mensagem  MarceloF em Sex 24 Jun 2016, 09:33

    Caro Silvio.
    se o nome do campo é CPF
    eu não deveria usar?

    me.cpf.setfocus
    me.cfp = ""


    mas aí não deu certo quanto coloquei ontem.

    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3227
    Registrado : 20/04/2011

    Re: [Resolvido]limpar campo após erro

    Mensagem  Silvio em Sex 24 Jun 2016, 10:05

    Depende do nome que está na folha de propriedades aba outros, campo nome..... do referido campo, pode ser que esteja com outro nome lá.

    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3348
    Registrado : 04/04/2010

    Re: [Resolvido]limpar campo após erro

    Mensagem  Avelino Sampaio em Sex 24 Jun 2016, 11:12

    Mais uma opção. Use o UNDO para limpar o campo.

    Private Sub CPF_BeforeUpdate(Cancel As Integer)
    ...
    ...
    If DVCPF = strDigVer Then
    MsgBox "CPF Inválido..."
    Cancel = True
    me!Cpf.Undo
    End If
    End Sub


    Sucesso!


    .................................................................................
    ============ Quer aprender Access em alta velocidade ? ============

    || [Você precisa estar registrado e conectado para ver esta imagem.] Acesse o site UsandoAccess.com.br e veja um ótimo kit de ensino que tenho para você.

    ===========================================================

    MarceloF
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 23
    Registrado : 22/09/2014

    Re: [Resolvido]limpar campo após erro

    Mensagem  MarceloF em Seg 27 Jun 2016, 09:09

    boa tarde, Avelino / Silvio
    Tentei as opções sugeridas.... e nada feito.
    Parece algo simples... e não entendo porque da erro na função Me.
    Hoje à noite vou postar o parte do banco (a tabela e o formulário) para ver se conseguimos chegar a uma solução.
    Grato

    marcelo3092
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 45
    Registrado : 19/08/2010

    Limpar campo após erro

    Mensagem  marcelo3092 em Seg 27 Jun 2016, 09:48

    Este código funciona certim pasta colocar o código do mestre avelino no modulo que calcula o CPF ou CNPJ no final do código

    CreateObject("Wscript.shell").SendKeys "{f2}"
    CreateObject("Wscript.shell").SendKeys "{DELETE}"

    If DVCPF = strDigVer Then
    MsgBox "CPF válido!", vbInformation, "Sistema Vendas."
    Else
    MsgBox "CPF inválido", vbCritical, "Sistema Vendas."
    DoCmd.CancelEvent
    CreateObject("Wscript.shell").SendKeys "{f2}"
    CreateObject("Wscript.shell").SendKeys "{DELETE}"

    End If

    End Function





    If DVCGC = strDigVer Then
    MsgBox "CNPJ Válido", vbInformation, "Sistema Vendas."
    Else
    MsgBox "CNPJ inválido", vbCritical, "Sistema Vendas."
    DoCmd.CancelEvent
    CreateObject("Wscript.shell").SendKeys "{f2}"
    CreateObject("Wscript.shell").SendKeys "{DELETE}"

    End If
    End Function

    MarceloF
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 23
    Registrado : 22/09/2014

    Re: [Resolvido]limpar campo após erro

    Mensagem  MarceloF em Ter 28 Jun 2016, 09:38

    Obrigado a todos que me ajudaram.
    Não estou usando o validador de CPF/CNPJ do Avelino, mas consegui adaptar ao código que estou usando.

    Obrigado xará.

    MarceloF
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 23
    Registrado : 22/09/2014

    Re: [Resolvido]limpar campo após erro

    Mensagem  MarceloF em Ter 28 Jun 2016, 09:39

    Resolvido.

      Data/hora atual: Sab 03 Dez 2016, 07:36