[resolvido] Tratamento de erro no Access Runtime

Moderador: Avelino Sampaio

willian.rocha
Mensagens: 4
Registrado em: 01 Fev 2017, 15:06

[resolvido] Tratamento de erro no Access Runtime

Mensagempor willian.rocha » 27 Out 2017, 12:20

Prezados
Nossa estou com um problemão. Tratamento de erro no Access Runtime. Em diversas situações do meu sistema o Access Runtime dispara a seguinte mensagem:
A execução deste aplicativo foi interrompida devida a um erro em tempo de execução O aplicativo não pode continuar e será desligado

Como exemplo desse problema vamos a uma situação simples, tenho um formulário com um textbox contendo a seguinte validação:

Código: Selecionar todos

Private Sub txbDteInicConf_AfterUpdate()
    On Error Resume Next
    '<Validação da data>
    If Me.txbDteInicConf = "" Then
        End
    ElseIf CDate(Me.txbDteInicConf) > Now Then
        MsgBox "Não é um período válido!" & Chr(10) & "Data no futuro ou data término maior que data início"
        Me.txbDteInicConf = ""
        End
    End If
    '</>
    Call CalcularHh
    Call VerificarSaldoServico
End Sub

Esse textbox tem uma mascara de data. O erro ocorre quando insiro uma data invalida, ele apresenta o erro normalmente de validação de campo, dou ok e limpo campo, como se estivesse desistindo de preenchê-lo, ao sair do campo dispara a mensagem.

Disable adblock

Precisamos do seu apoio. Faca uma doacao para o site atraves do Paypal.


Avatar do usuário
Avelino Sampaio
Mensagens: 1871
Registrado em: 04 Jun 2015, 18:27
Contato:

Re: Tratamento de erro no Access Runtime

Mensagempor Avelino Sampaio » 27 Out 2017, 14:12

willian,

neste código mostrado, vc deveria usar o evento ANTES DE ATUALIZAR, para então poder usar o CANCEL

Código:
Private Sub txbDteInicConf_BeforeUpdate(Cancel As Integer)
On Error Resume Next
'<Validação da data>
If Me.txbDteInicConf = "" Then
End
ElseIf CDate(Me.txbDteInicConf) > Now Then
MsgBox "Não é um período válido!" & Chr(10) & "Data no futuro ou data término maior que data início"
cancel = true
me!txbDteInicConf.undo
End
End If
'</>
Call CalcularHh
Call VerificarSaldoServico
End Sub


Na maioria da vezes, o uso da linha ON ERROR RESUME NEXT impede do aplicativo ser desligado. No caso deste seu formulário, o erro deve estar acontecendo no evento "APÓS ATUALIZAR" do formulário.

Aguardamos
==================================================
Clique no link abaixo e veja um ótimo kit de ensino que tenho para você.
http://www.usandoaccess.com.br
==================================================

willian.rocha
Mensagens: 4
Registrado em: 01 Fev 2017, 15:06

Re: Tratamento de erro no Access Runtime

Mensagempor willian.rocha » 27 Out 2017, 15:24

Fala mestre Avelino,
Bom descobri aqui que o problema estava no comando "end" por algum motivo no Access Runtime ele não tem o comportamento esperado
Só substitui pelo comando "Stop" e o problema cessou.

Mesmo assim valeu aí pela dica!

Avatar do usuário
Avelino Sampaio
Mensagens: 1871
Registrado em: 04 Jun 2015, 18:27
Contato:

Re: Tratamento de erro no Access Runtime

Mensagempor Avelino Sampaio » 27 Out 2017, 16:57

Willian,

nem percebi que estava usando o END. Utilize o Exit sub

Código:
Private Sub txbDteInicConf_AfterUpdate()
On Error Resume Next
'<Validação da data>
If Me.txbDteInicConf = "" Then
exit sub
ElseIf CDate(Me.txbDteInicConf) > Now Then
MsgBox "Não é um período válido!" & Chr(10) & "Data no futuro ou data término maior que data início"
Me.txbDteInicConf = ""
exit sub
End If
'</>
Call CalcularHh
Call VerificarSaldoServico
End Sub


Para ter a certeza se seu código esta escrito corretamente, abra o VBA e em DEPURARA > Clique COMPILAR

Aguardamos
==================================================
Clique no link abaixo e veja um ótimo kit de ensino que tenho para você.
http://www.usandoaccess.com.br
==================================================

Disable adblock

Precisamos do seu apoio. Faca uma doacao para o site atraves do Paypal.



Voltar para “Módulos VBA”

Quem está online

Usuários neste fórum: Nenhum usuário registrado e 2 visitantes