Msg de erro no form

Moderador: Avelino Sampaio

Dico Seibt
Mensagens: 56
Registrado em: 22 Abr 2016, 03:41

Msg de erro no form

Mensagempor Dico Seibt » 07 Out 2017, 04:47

Amigos,

Criei um formulário com campos não associados e com um botão que vai incluir os dados dos campos em uma tabela através de uma consulta ação. Ocorre que os dados podem não atender aos requisitos de chave da tabela e o Access abre uma janela padrão de erro da consulta ação: se você clica em sim, o sistema zera os campos não associados, conforme a programação, mas não insere os dados na tabela (por causa da chave); e se você clicar em não, o Access emite uma outra mensagem de interrupção da rotina pelo usuário e volta para o formulário com os campos não associados preenchidos. Neste momento o operador pode fazer alguma alteração que faça com que os novos dados passem a atender aos requisitos da chave.
Eu gostaria de deixar esta mensagem de erro com apenas uma possibilidade de resposta, com efeitos equivalentes a responder "não" na janela padrão.

Grato.

Disable adblock

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


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

Re: Msg de erro no form

Mensagempor Avelino Sampaio » 07 Out 2017, 08:21

Dico,

A tela de erro informa algum número ?

Tente , utilizando o tratamento de erro. Algo assim:

Código:
On Error GoTo trataErro

'aqui o seu código

sair:
Exit Function
trataErro:
Select Case Err.Number
Case 3078 ' aqui vc altera para o número indicado na tela de erro.
MsgBox "Não atende aos requisitos de chave...", vbInformation, "Aviso"
Case Else
MsgBox "Erro: " & Err.Number & vbCrLf & Err.Description, vbCritical, "Aviso", _
Err.HelpFile, Err.HelpContext
End Select
Resume sair:


Se não der resultado, experimente utilizar o evento "ao ocorrer erro" do formulário. Algo assim:

Código:
Private Sub Form_Error(DataErr As Integer, Response As Integer)
'3200 erro de exclusão de registro
If DataErr = 3200 Then
'Cancela mensagem de erro do Access
Response = acDataErrContinue
'Cria a sua mensagem personalizada
MsgBox "Sua mensagem"
End If
End Sub


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

Dico Seibt
Mensagens: 56
Registrado em: 22 Abr 2016, 03:41

Re: Msg de erro no form

Mensagempor Dico Seibt » 24 Dez 2017, 05:40

Mestre Avelino,

Como sempre demoro porque não estou full time na programação.
A mensagem que estou querendo tratar é aquela que é emitida pela consulta ação quando algum registro e rejeitado na tabela por não atender aos requisitos de chave.
Tentei as duas soluções sugeridas e não consegui tratar a mensagem de erro.

Abraço.

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

Re: Msg de erro no form

Mensagempor Avelino Sampaio » 03 Jan 2018, 10:34

Dico,

utilize o Currentdb.Execute com a argumento Options setado para dbFailOnError. Assim vc poderá interceptar o erro pelo Código. Veja um exemplo abaixo, aonde estou tentando inserir um IdCliente inexistente, que irá ocasionar um erro, por falta do registro relacionado:

Código:
On Error GoTo trataErro
CurrentDb.Execute "INSERT INTO tblOcorrencias (ocorrencia,idcliente) VALUES ('avelino', 25)", dbFailOnError
sair:
Exit Sub
trataErro:
If Err.Number = 3201 Then
'faça o que deseja aqui, caso falhe a atualização
End If
Resume sair:


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.


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

Re: Msg de erro no form

Mensagempor Avelino Sampaio » 30 Jan 2018, 06:25

Dico,

como ficou esta questão ?

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 “Formulários”

Quem está online

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