Pergunta

É possível ignorar o evento BeforeUpdate?Eu tenho um código em meu evento BeforeUpdate que é executado quando é feita uma tentativa de salvar o registro, porém no mesmo formulário tenho um subformulário que exige que o usuário selecione um registro nesse subformulário.À medida que isso altera o foco do registro atual, ele aciona meu código BeforeUpdate, o que não quero que faça.

Existe uma maneira de ignorar o evento BeforeUpdate do formulário quando o usuário clica em um registro no subformulário de um formulário?

Foi útil?

Solução

"Existe uma maneira de ignorar o evento BeforeUpdate do formulário quando o usuário clica em um registro no subformulário de um formulário?"

Quando você muda o foco para um subformulário com um registro não salvo no formulário principal, o Access tentará automaticamente salvar o registro "sujo" do formulário principal.

Esse comportamento está embutido no Access e você não pode evitá-lo.

Acho que você deveria usar uma abordagem diferente.Atualmente (com base na discussão dos comentários) você tem um botão de comando para salvar o registro do formulário principal.No entanto, se certos controles contiverem Nulo, você aborta o salvamento do formulário Antes da atualização evento.

Do meu ponto de vista, o usuário não deveria nem conseguir clicar no botão de comando quando algum desses controles contiver Nulo.(Por que deixá-los clicar em um botão e depois informar que a ação é inválida?) Portanto, sugiro que você ative o botão de comando apenas quando todos esses controles contiverem valores não nulos.

Considere um botão de comando chamado cmdSalvar e 3 caixas de texto: txtOne, txtDois, e txtTrês.Crie um procedimento, SetButtonAvailability, e chame esse procedimento no Após atualização eventos de todas as 3 caixas de texto.

Private Sub SetButtonAvailability
    If IsNull(Me.txtOne) Or IsNull(Me.txtTwo) Or IsNull(Me.txtThree) Then
        Me.cmdSave.Enabled = False
    Else
        Me.cmdSave.Enabled = True
    End If
End Sub

Também no formulário No atual evento, você faria Me.cmdSave.Enabled = False porque ainda não há alterações para salvar o registro atual.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top