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


5 participantes

    [Resolvido]Apagar o registro errado e mover o foco de volta ao campo

    João Ricardo
    João Ricardo
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 534
    Registrado : 20/01/2013

    [Resolvido]Apagar o registro errado e mover o foco de volta ao campo Empty [Resolvido]Apagar o registro errado e mover o foco de volta ao campo

    Mensagem  João Ricardo 12/5/2014, 03:22

    Amigos, boa noite!

    Tenho dois problemas na seguinte situação:
    1.
    O usuário preenche vários campos de um subform e, qdo um dos campos não satisfaz determinada condição o valor desse campo, e somente desse campo, deve ser deletado e o foco retornado para ele. Isso é importante porque se usuário já digitou três ou quatro campos corretos, não é justo que tenha que iniciar toda a linha novamente porque errou apenas em um campo.
    O código está no evento Após Atualizar dos campos.
    Me!txtDataSaida.Undo Esta linha não está funcionando como eu gostaria. já tentei frm.Undo, me.Undo e Me.TxtDataSaida.Undo

    2.
    Mesmo usando Me!txtDataSaida.SetFocus o foco não se move de volta para o txtDataSaida. Tentei outras variações a exemplo do problema 1, mas não deu certo.

    Todos os campos tem preenchimento obrigatório, ocorrendo em erro ao usar .Value = "" ou txtDataSaida = Null. Talvez desse certo se o foco retornasse para os campos, mas não tenho certeza.


    Código:
    Private Sub txtDataSaida_AfterUpdate()
        dtaDataSair = DataSaida 'Variável pública
         If dtaDataSair < Date Then
            MsgBox "A data de saída deve ser igual ou maior à data de hoje. Por favor, informe uma data válida!", vbExclamation, "Sistema Educacional"
            Me!txtDataSaida.Undo
            Me!txtDataSaida.SetFocus
        End If
    End Sub

    Se puderem ajudar, fico grato.
    Pesquisei e encontrei situações onde não se deseja salvar nenhum registro, mas isso causaria descontentamento no usuário.
    formiga10x
    formiga10x
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 818
    Registrado : 11/09/2013

    [Resolvido]Apagar o registro errado e mover o foco de volta ao campo Empty Re: [Resolvido]Apagar o registro errado e mover o foco de volta ao campo

    Mensagem  formiga10x 12/5/2014, 06:10

    Tente:

    Me!txtDataSaida = ""
    ou me.txtdatasaida = Null
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Apagar o registro errado e mover o foco de volta ao campo Empty Re: [Resolvido]Apagar o registro errado e mover o foco de volta ao campo

    Mensagem  Avelino Sampaio 12/5/2014, 08:26

    Olá!

    Use o evento "Antes de atualizar" que vc se manterá no campo após cancelar.

    Sucesso!


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    João Ricardo
    João Ricardo
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 534
    Registrado : 20/01/2013

    [Resolvido]Apagar o registro errado e mover o foco de volta ao campo Empty Re: [Resolvido]Apagar o registro errado e mover o foco de volta ao campo

    Mensagem  João Ricardo 12/5/2014, 16:57

    Amigos, obrigado!

    Dá erro 2108 ao usar as opções que me sugeriram, na seguinte ordem:

    Código:
    Private Sub txtDataSaida_BeforeUpdate(Cancel As Integer)
       
        dtaDataSair = DataSaida
       
        If dtaDataSair < Date Then
            MsgBox "A data de saída deve ser igual ou maior à data de hoje. Por favor, informe uma data válida!", vbExclamation, "Sistema Educacional"
            Me.txtDataSaida.SetFocus
            Me.txtDataSaida = Null
        End If

    End Sub

    Ou invertendo a ordem como abaixo, está dando erro em tempo de execução, dizendo que não podem ser salvos os dados do campo, usando em antes de atualizar.

    Código:
    Private Sub txtDataSaida_BeforeUpdate(Cancel As Integer)
       
        dtaDataSair = DataSaida
       
        If dtaDataSair < Date Then
            MsgBox "A data de saída deve ser igual ou maior à data de hoje. Por favor, informe uma data válida!", vbExclamation, "Sistema Educacional"
            Me.txtDataSaida = Null
            Me.txtDataSaida.SetFocus
        End If

    End Sub
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Apagar o registro errado e mover o foco de volta ao campo Empty Re: [Resolvido]Apagar o registro errado e mover o foco de volta ao campo

    Mensagem  Avelino Sampaio 12/5/2014, 18:34

    Assim

    Private Sub txtDataSaida_BeforeUpdate(Cancel As Integer)

    dtaDataSair = DataSaida

    If dtaDataSair < Date Then
    MsgBox "A data de saída deve ser igual ou maior à data de hoje. Por favor, informe uma data válida!", vbExclamation, "Sistema Educacional"
    cancel = true
    Me.txtDataSaida.undo
    End If

    End Sub


    Sucesso!


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    João Ricardo
    João Ricardo
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 534
    Registrado : 20/01/2013

    [Resolvido]Apagar o registro errado e mover o foco de volta ao campo Empty Re: [Resolvido]Apagar o registro errado e mover o foco de volta ao campo

    Mensagem  João Ricardo 13/5/2014, 03:26

    Olá amigo, grato pelo retorno!

    O sistema informa que o valor viola a regra de validação do registro ou campo.
    Não há regras de validação no formulário ou tabela, para este campo.
    Creio que a função atribui uma "regra de validação", mas não sei como resolver.
    O foco é movido para o campo específico, mas não elimina o valor do campo. Caso o usuário passe o próximo campo o valor acaba sendo aceito.
    João Ricardo
    João Ricardo
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 534
    Registrado : 20/01/2013

    [Resolvido]Apagar o registro errado e mover o foco de volta ao campo Empty Re: [Resolvido]Apagar o registro errado e mover o foco de volta ao campo

    Mensagem  João Ricardo 14/5/2014, 16:42

    Amigos, alguma informação nova!
    Pesquisei outros assuntos mas nada ainda
    rdrck
    rdrck
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1011
    Registrado : 11/03/2014

    [Resolvido]Apagar o registro errado e mover o foco de volta ao campo Empty Re: [Resolvido]Apagar o registro errado e mover o foco de volta ao campo

    Mensagem  rdrck 14/5/2014, 17:44

    Olá João,
    Tente assim, no evento Ao Sair do seu campo:

    If TxtDataSaida < Date Then
    MsgBox "A data de saída deve ser igual ou maior à data de hoje. Por favor, informe uma data válida!", vbExclamation, "Sistema Educacional"
    Cancel = True
    Me.TxtDataSaida = Null
    Me.TxtDataSaida.SetFocus
    End If


    .................................................................................
    Meu Programa / OS:
    Access 2010 - Windows 10.
    João Ricardo
    João Ricardo
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 534
    Registrado : 20/01/2013

    [Resolvido]Apagar o registro errado e mover o foco de volta ao campo Empty Re: [Resolvido]Apagar o registro errado e mover o foco de volta ao campo

    Mensagem  João Ricardo 15/5/2014, 02:37

    Grato pelo retorno!

    Funcionou bem, mas tem um detalhe, o foco não retorna para o campo de forma alguma.
    Já tentei outros caminhos, mas não deu certo.
    rdrck
    rdrck
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1011
    Registrado : 11/03/2014

    [Resolvido]Apagar o registro errado e mover o foco de volta ao campo Empty Re: [Resolvido]Apagar o registro errado e mover o foco de volta ao campo

    Mensagem  rdrck 15/5/2014, 11:58

    Estranho. Testei aqui e o foco se manteve no campo.


    .................................................................................
    Meu Programa / OS:
    Access 2010 - Windows 10.
    João Ricardo
    João Ricardo
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 534
    Registrado : 20/01/2013

    [Resolvido]Apagar o registro errado e mover o foco de volta ao campo Empty Re: [Resolvido]Apagar o registro errado e mover o foco de volta ao campo

    Mensagem  João Ricardo 15/5/2014, 12:44

    Olá meu amigo

    Segue frm para avaliação

    Selecione um aluno e no subfrm atribua uma saída preenchendo os campos. Tente preencher com data inferior à atual para ver a mensagem e o deslocamento do foco.

    Os outros campos data também tem condições semelhantes.
    Foco Aqui
    rdrck
    rdrck
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1011
    Registrado : 11/03/2014

    [Resolvido]Apagar o registro errado e mover o foco de volta ao campo Empty Re: [Resolvido]Apagar o registro errado e mover o foco de volta ao campo

    Mensagem  rdrck 15/5/2014, 13:17

    Meu Access não reconheceu o formato do arquivo.
    Se puder converter para o 2007...


    .................................................................................
    Meu Programa / OS:
    Access 2010 - Windows 10.
    João Ricardo
    João Ricardo
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 534
    Registrado : 20/01/2013

    [Resolvido]Apagar o registro errado e mover o foco de volta ao campo Empty Re: [Resolvido]Apagar o registro errado e mover o foco de volta ao campo

    Mensagem  João Ricardo 15/5/2014, 13:40

    Agora vai

    Foco novo
    rdrck
    rdrck
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1011
    Registrado : 11/03/2014

    [Resolvido]Apagar o registro errado e mover o foco de volta ao campo Empty Re: [Resolvido]Apagar o registro errado e mover o foco de volta ao campo

    Mensagem  rdrck 15/5/2014, 14:16

    Olá João,
    Como você disse no post anterior... Agora vai.
    Observe que não considerei a variável. Trabalhei com o próprio nome do campo. E isso no evento Ao Sair, e não no Após Atualizar. Exatamente como havia dito na postagem onde coloquei o código.
    Dê uma olhada.
    Anexos
    [Resolvido]Apagar o registro errado e mover o foco de volta ao campo AttachmentSistema Educacional_MOD.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (135 Kb) Baixado 69 vez(es)


    .................................................................................
    Meu Programa / OS:
    Access 2010 - Windows 10.
    João Ricardo
    João Ricardo
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 534
    Registrado : 20/01/2013

    [Resolvido]Apagar o registro errado e mover o foco de volta ao campo Empty Re: [Resolvido]Apagar o registro errado e mover o foco de volta ao campo

    Mensagem  João Ricardo 15/5/2014, 14:31

     No  Embarassed  O que á falta de atenção!!!!

    Teria poupado tempo (principalmente o seu) e eu aprendido mais rápido!  study 

    Muito obrigado mais uma vez!!!
    rdrck
    rdrck
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1011
    Registrado : 11/03/2014

    [Resolvido]Apagar o registro errado e mover o foco de volta ao campo Empty Re: [Resolvido]Apagar o registro errado e mover o foco de volta ao campo

    Mensagem  rdrck 15/5/2014, 14:45

    Obrigado pelo retorno.
    Sucesso.
    Valeu.


    .................................................................................
    Meu Programa / OS:
    Access 2010 - Windows 10.
    avatar
    Ismael Silva
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 827
    Registrado : 11/12/2017

    [Resolvido]Apagar o registro errado e mover o foco de volta ao campo Empty Re: [Resolvido]Apagar o registro errado e mover o foco de volta ao campo

    Mensagem  Ismael Silva 28/8/2020, 05:09

    A muito estava procurando encontrar essa mesma solução para o mesmo problema, agora encontrei.

    Conteúdo patrocinado


    [Resolvido]Apagar o registro errado e mover o foco de volta ao campo Empty Re: [Resolvido]Apagar o registro errado e mover o foco de volta ao campo

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 27/4/2024, 06:28