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]Aviso de alteração no registro

    Compartilhe
    avatar
    OLDRIVG
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 262
    Registrado : 20/07/2010

    [Resolvido]Aviso de alteração no registro

    Mensagem  OLDRIVG em 14/11/2018, 13:02

    Prezados, bom dia.

    Estou tentando usar a função abaixo, que peguei não me lembro onde, mas não está funcionando. Retorna erro de uso indevido do ME.

    If Me.Form.Dirty = True Then 'Verifica se teve alguma alteração nos campos
               If MsgBox("O regristro sofreu alteração, deseja salvar?", vbYesNo + vbInformation, "Atenção") = vbYes Then 'Exibe a mensagem
                   Me.dataHORAULTIMAAtualizacao.Value = Now 'Data da última Atualização
                   DoCmd.Save 'Salva o form
                   
                   Else 'Caso o vbYesNo seja = vbNo
                   
                   Form.Undo 'Desfaz as alterações realizadas
                  End If
         
           End If
       End Function


    Tentei usar nos eventos "Ao Fechar" e "Em Sujo", do formulário, mas em nenhum funcionou.

    Alguém saberia me informar onde implementar e/ou como usar a referida função. Ou ainda, se existe alguma outra maneira de ser avisado quando ocorrer alteração em algum registro e possibilitar o salvamento ao sair do registro ou ao fechar o formulário? Desde já agradeço.
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5619
    Registrado : 15/03/2013

    Re: [Resolvido]Aviso de alteração no registro

    Mensagem  ahteixeira em 14/11/2018, 16:07

    Olá Oldri,

    Tente no evento Form_Current, em português No Atual.

    Abraço
    avatar
    OLDRIVG
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 262
    Registrado : 20/07/2010

    Re: [Resolvido]Aviso de alteração no registro

    Mensagem  OLDRIVG em 19/11/2018, 09:58

    Olá, ahteixeira, bom dia.

    Não funcionou. Continua retornando erro.

    Estou precisando de um código que quando houver alteração em qualquer dos campos digitáveis do formulário o usuário seja alertado através de uma MSG e tenha a opção de salvar ou não as alterações ocorridas, exceto quando for novo registro.
    Já tentei de várias formas a propriedade "Dirty", sem sucesso.

    Como escrito no post anterior, tentei usar a função

    Public Function fecharJanela()
           If Me.Form.Dirty = True Then 'Verifica se teve alguma alteração nos campos
               If MsgBox("O regristro sofreu alteração, deseja salvar?", vbYesNo + vbInformation, "Atenção") = vbYes Then 'Exibe a mensagem
                   Me.DataHoraUltimaAlteracao.Value = Now 'Data da última Atualização
                   DoCmd.Save 'Salva o form
                   
                   Else 'Caso o vbYesNo seja = vbNo
                   
                   Form.Undo 'Desfaz as alterações realizadas
                  End If
         
           End If
       End Function


    utilizando o código "Call fecharJanela" nos eventos Ao Fechar, Sujo, Ao Atualizar e No atual(conforme sugerido por vc), sem sucesso, sempre retornando erro.

    Teria alguma sugestão para atingir o objetivo que pretendo? Desde já agradeço.
    avatar
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 305
    Registrado : 22/11/2016

    Re: [Resolvido]Aviso de alteração no registro

    Mensagem  IvanJr. em 19/11/2018, 23:36

    Experimente o código assim

    Código:
    If Me.Dirty = True Then 'Verifica se teve alguma alteração nos campos
              If MsgBox("O regristro sofreu alteração, deseja salvar?", vbYesNo + vbInformation, "Atenção") = vbYes Then 'Exibe a mensagem
                  Me.dataHORAULTIMAAtualizacao.Value = Now 'Data da última Atualização
                  DoCmd.Save 'Salva o form
                 
                  Else 'Caso o vbYesNo seja = vbNo
                 
                  me.Undo 'Desfaz as alterações realizadas
                  End If
         
          End If
      End Function
    avatar
    OLDRIVG
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 262
    Registrado : 20/07/2010

    Re: [Resolvido]Aviso de alteração no registro

    Mensagem  OLDRIVG em 20/11/2018, 13:29

    Prezado Ivan Jr.

    Agradeço-lhe a atenção, mas não funcionou. Retornou "Erro de compilação: era esperada variável ou procedimento, não módulo".

    Coloquei o "Call ModUltimaAlteracao" no evento Ao Fechar do formulário. Está correto?

    Agradecido
    avatar
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3597
    Registrado : 06/11/2009

    Re: [Resolvido]Aviso de alteração no registro

    Mensagem  Assis em 20/11/2018, 14:00

    OLDRIVG

    Tire esta parte do evento ao fechar.
    ------> Coloquei o "Call ModUltimaAlteracao" no evento Ao Fechar do formulário. Está correto?

    E teste o exemplo que o IvanJr. lhe passou

    Aguardamos


    .................................................................................
    *** Só sei que nada sei ***
    avatar
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 305
    Registrado : 22/11/2016

    Re: [Resolvido]Aviso de alteração no registro

    Mensagem  IvanJr. em 20/11/2018, 14:00

    Não, não está. É que você está chamando um módulo.

    Se você tiver criado um módulo para colocar o código que foi postado aqui então está errado. Nem precisa ir tão longe, basta apenas colar o código no evento "Antes de atualizar" do seu formulário. Somente isso. Experimente.

    Código:
    If Me.Dirty = True Then 'Verifica se teve alguma alteração nos campos
            If MsgBox("O regristro sofreu alteração, deseja salvar?", vbYesNo + vbInformation, "Atenção") = vbYes Then 'Exibe a mensagem
              Me.dataHORAULTIMAAtualizacao.Value = Now 'Data da última Atualização
            Else
              Me.Undo 'Desfaz as alterações realizadas
            End If
        End If

    Aguardo retorno.
    avatar
    OLDRIVG
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 262
    Registrado : 20/07/2010

    Re: [Resolvido]Aviso de alteração no registro

    Mensagem  OLDRIVG em 20/11/2018, 14:22

    Prezado Ivan Jr.

    Agradeço-lhe, mais uma vez, a atenção e o empenho. Funcionou legal.

    Agradeço também aos demais companheiros do Fórum pela a atenção.

    Agradecido a todos.

    avatar
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 305
    Registrado : 22/11/2016

    Re: [Resolvido]Aviso de alteração no registro

    Mensagem  IvanJr. em 20/11/2018, 14:37

    Obrigado pelo retorno. Sucesso.

    Assis. Obrigado por ajudar. Sucesso a você também.

      Data/hora atual: 16/12/2018, 11:23