MaximoAccess

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

Obrigado

Administração do MaximoAccess


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.

Obrigado

Administração do MaximoAccess

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

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

    avatar
    valdir.urcinosilva
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 10
    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 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 : 7871
    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 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 : 10
    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 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 : 1193
    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 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


    .................................................................................
    - Procure sempre anexar seu projeto para análise do problema/dúvida.
    - Ao copiar/colar um código VBA, procure entender seu funcionamento.
    - Se o problema foi resolvido, não se esqueça de marcar o tópico como RESOLVIDO.
    avatar
    valdir.urcinosilva
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 10
    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 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 : 1193
    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 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.




    .................................................................................
    - Procure sempre anexar seu projeto para análise do problema/dúvida.
    - Ao copiar/colar um código VBA, procure entender seu funcionamento.
    - Se o problema foi resolvido, não se esqueça de marcar o tópico como RESOLVIDO.
    Silvio
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4718
    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 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 : 1193
    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 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


    .................................................................................
    - Procure sempre anexar seu projeto para análise do problema/dúvida.
    - Ao copiar/colar um código VBA, procure entender seu funcionamento.
    - Se o problema foi resolvido, não se esqueça de marcar o tópico como RESOLVIDO.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7871
    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 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 : 10
    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 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.

      Data/hora atual: 7/3/2021, 05:27