MaximoAccess

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

Obrigado

Administração do MaximoAccess

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


    [Resolvido]Cancelar registro mas não apagar dados preenchidos

    avatar
    valdir.urcinosilva
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    Registrado : 05/05/2017

    [Resolvido]Cancelar registro mas não apagar dados preenchidos Empty [Resolvido]Cancelar registro mas não apagar dados preenchidos

    Mensagem  valdir.urcinosilva em 31/7/2019, 01:58

    Pessoal boa noite,

    Estou com um probleminha num código aqui no meu projeto que é o seguinte:

    Tenho um formulário que antes de atualizar, o usuário deve confirmar o registro do lançamento. Quando ele confirma, o lançamento está sendo realizado normalmente na tabela, no entanto queria que quando ele clicasse em não, o formulário não registrasse os dados na tabela mas também não apagasse o que foi digitado no formulário. Está acontecendo de o usuário ter que digitar tudo de novo nos campos, as vezes por ter errado uma coisinha somente. O código que estou usando é esse:


    Private Sub Form_BeforeUpdate(Cancel As Integer)
      Dim strMsg As String
      Dim iResponse As Integer

      'Mensagem a ser apresentada na tela.
      strMsg = "Deseja salvar esse registro?" & Chr(10)
      strMsg = strMsg & "Clique em SIM para Salvar ou NÃO para cancelar o registro."

      'Nome da caixa de mensagem.
      iResponse = MsgBox(strMsg, vbQuestion + vbYesNo, "Salvar Registro?")
       
      'Reposta do usuário.
      If iResponse = vbNo Then
       
         'Ação executada em caso de resposta positiva.
         DoCmd.RunCommand acCmdUndo

         'Ação executada em caso de resposta negativa.
         Cancel = False
         End If
    End Sub


    Por favor me ajudem em mais esse empreitada. Desde já agradeço.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7408
    Registrado : 05/11/2009

    [Resolvido]Cancelar registro mas não apagar dados preenchidos Empty Re: [Resolvido]Cancelar registro mas não apagar dados preenchidos

    Mensagem  Alexandre Neves em 31/7/2019, 13:27

    Boa tarde
    Pode ter variáveis ou array para guardar os dados preenchidos
    Ao cancelar, vá às variáveis ou array e reponho o preenchimento


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    valdir.urcinosilva
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    Registrado : 05/05/2017

    [Resolvido]Cancelar registro mas não apagar dados preenchidos Empty Cancelar registro mas não apagar dados preenchidos

    Mensagem  valdir.urcinosilva em 31/7/2019, 14:42

    Bom dia Alexandre,

    Não saberia como aplicar no meu código, poderia dar uma exemplo de como ficaria?
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 847
    Registrado : 13/12/2016

    [Resolvido]Cancelar registro mas não apagar dados preenchidos Empty Re: [Resolvido]Cancelar registro mas não apagar dados preenchidos

    Mensagem  Alexandre Fim em 31/7/2019, 15:09

    Valdir,

    Apenas uma sugestão.

    Eu vejo esta situação como uma questão de processo e não de sistema.
    Se você colocou uma mensagem para o usuário confirmar (ou não), ele tem a responsabilidade de decidir se vai gravar ou não o registro.
    O usuário tem que entender que se ele não confirmar a gravação, ele deverá preencher novamente os dados. Simples assim !!!
    Se o usuário CONFIRMAR a gravação dos dados, ai o sistema grava os dados normalmente, conforme você desenvolveu.
    Se o usuário perceber que digitou algum dado errado/equivocado, o sistema deve possibilitar a alteração deste registro.

    Você também pode inserir uma rotina de gravação de log das ações do usuário no sistema.

    Espero ter ajudado.

    Boa sorte


    .................................................................................
    "Aprender é a única coisa de que a mente nunca se cansa, nunca tem medo e nunca se arrepende." (Leonardo da Vinci)
    "O impossível existe até que alguém duvide dele e prove o contrário." (Albert Einstein)
    avatar
    valdir.urcinosilva
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    Registrado : 05/05/2017

    [Resolvido]Cancelar registro mas não apagar dados preenchidos Empty Cancelar registro mas não apagar dados preenchidos

    Mensagem  valdir.urcinosilva em 31/7/2019, 15:14

    Concordo com você Alexandre,

    No entanto, a ideia é que o Access possibilitasse a alteração dos dados, sem apagar do formulário tudo que foi digitado.
    Da forma como está, quando ele não confirma, está apagando tudo e ainda não consegui descobrir como contornar esse inconveniente.
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 847
    Registrado : 13/12/2016

    [Resolvido]Cancelar registro mas não apagar dados preenchidos Empty Re: [Resolvido]Cancelar registro mas não apagar dados preenchidos

    Mensagem  Alexandre Fim em 31/7/2019, 15:25

    Valdir,

    O sistema deve permitir que o usuário altere o registro após a gravação dos dados.
    Quando o usuário não confirma os dados, entende-se que ele esta cancelando ou desfazendo o registro.
    É processo.
    Como mencionei anteriormente, se o usuário precisar alterar o registro, ele entra no cadastro, altera os dados necessários e grava novamente.
    Quando ele grava a 1a. vez, o sistema está inserindo os dados na tabela.
    Quando o usuário entra no registro e conserta o que tava errado, na hora de gravar, o sistema está atualizando o registro inserido.
    Qualquer sistema comercial se comporta desta forma.

    Espero ter ajudado.




    .................................................................................
    "Aprender é a única coisa de que a mente nunca se cansa, nunca tem medo e nunca se arrepende." (Leonardo da Vinci)
    "O impossível existe até que alguém duvide dele e prove o contrário." (Albert Einstein)
    Silvio
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

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

    [Resolvido]Cancelar registro mas não apagar dados preenchidos Empty Re: [Resolvido]Cancelar registro mas não apagar dados preenchidos

    Mensagem  Silvio em 31/7/2019, 15:30

    Bom dia para todos, apendas dando um pitaquinho no tópico.

    Não testei a rotina abaixo, é apenas uma ideia.


    Private Sub Form_BeforeUpdate(Cancel As Integer)
     Dim strMsg As String
     Dim iResponse As Integer

     'Mensagem a ser apresentada na tela.
     strMsg = "Deseja salvar esse registro?" & Chr(10)
     strMsg = strMsg & "Clique em...." & vbcrlf & _
    " SIM para Salvar " & vbcrlf & _
    " NÃO para não salvar " & vbcrlf & _
    " CANCELAR para rever os dados do formulário."

     'Nome da caixa de mensagem.
     iResponse = MsgBox(strMsg, vbQuestion + vbYesNocancel  +vbDefaultButton3, "Salvar Registro?")
     
     'Reposta do usuário.
     If iResponse = vbcancel Then
       msgbox"Dados no formulário não foram salvos, revise-os !", vbinformation, " A V I S O ..."
        exit sub

    elseif vbno then
     
        'Ação executada em caso de resposta negativa.
        DoCmd.RunCommand acCmdUndo

        'Ação executada em caso de resposta negativa.
        Cancel = False
        End If
        End if

    End Sub


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 847
    Registrado : 13/12/2016

    [Resolvido]Cancelar registro mas não apagar dados preenchidos Empty Re: [Resolvido]Cancelar registro mas não apagar dados preenchidos

    Mensagem  Alexandre Fim em 31/7/2019, 16:10

    Valdir,

    Crie um botão Salvar (cmdSalvar) e no evento "AoClicar", implemente o seguinte código:

    Código:


    Dim resp

        resp = MsgBox("Deseja realmente salvar o registro?", vbQuestion + vbYesNoCancel, "Mensagem")
        
        If resp = vbYes Then
            'Executa rotina para gravar dados...
        ElseIf resp = vbNo Then
            'Sai do form e não grava dados...
        If resp = vbCancel Then
            Exit Sub
            'Cancela a ação e permanece no form...
        End Sub


    Boa sorte


    .................................................................................
    "Aprender é a única coisa de que a mente nunca se cansa, nunca tem medo e nunca se arrepende." (Leonardo da Vinci)
    "O impossível existe até que alguém duvide dele e prove o contrário." (Albert Einstein)
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7408
    Registrado : 05/11/2009

    [Resolvido]Cancelar registro mas não apagar dados preenchidos Empty Re: [Resolvido]Cancelar registro mas não apagar dados preenchidos

    Mensagem  Alexandre Neves em 31/7/2019, 17:55

    Ou tentar
    Código:
    Private Sub Form_BeforeUpdate(Cancel As Integer)
      Dim strMsg As String
      Dim iResponse As Integer
      'Mensagem a ser apresentada na tela.
      strMsg = "Deseja salvar esse registro?" & Chr(10)
      strMsg = strMsg & "Clique em SIM para Salvar ou NÃO para cancelar o registro."

      'Nome da caixa de mensagem.
      iResponse = MsgBox(strMsg, vbQuestion + vbYesNo, "Salvar Registro?")

      'Reposta do usuário.
      If iResponse = vbNo Then
         'Ação executada em caso de resposta positiva.
         Cancel = True
      End If
    End Sub


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    valdir.urcinosilva
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    Registrado : 05/05/2017

    [Resolvido]Cancelar registro mas não apagar dados preenchidos Empty Cancelar registro mas não apagar dados preenchidos

    Mensagem  valdir.urcinosilva em 31/7/2019, 18:22

    Boa tarde Pessoal,

    Primeiramente agradeço a todos que dedicaram um tempinho ai pra responder! Vocês são demais.
    Segundo, não testei os demais, mas a resposta do Alexandre Neves encaixou direitinho. Agora quando cancelo o processo, a tela fica com os dados digitados preenchidos para que a pessoa edite e salve já com os dados corretos.

    Obrigado mais uma vez.

    Conteúdo patrocinado

    [Resolvido]Cancelar registro mas não apagar dados preenchidos Empty Re: [Resolvido]Cancelar registro mas não apagar dados preenchidos

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 21/11/2019, 20:04