Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Tratamento de erro


Flecha

Pergunta

Olá,

Estou colocando validações no projeto e tratando os erros. meu primeiro teste foi evitar alteração do registro na entrada duplicada no meu caso é o RG.

Coloquei o tratamento nessa sub: abaixo o Cara entra com o Nome novo e todos os dados se for o RG já existente quando clicar no Gravar gera o erro e interrompe dando a mensagem.

Problema:

Não muda os dados (conteudo do campo) após o tratamento, fica o Nº do RG na tela e o registro não passa para o seguinte e não volta ao dados Original (o anterior antes de ser alterado e gerado o erro)

Private Sub CmdAltera_Click()
On Error GoTo trataerro

  If CmdAltera.Caption = "&Altera" Then
  
   '------------------------
If MsgBox("Você tem certeza que quer alterar Nome '" _
            & strNOME & " " & strRG & "'?", _
              vbYesNo + vbQuestion, _
              "Confirma Alteração") = vbNo Then
       Exit Sub
End If
'--------------------------
   TxtNome.SetFocus
   CmdAltera.Caption = "&Grava"
   Exit Sub
  End If
  If CmdAltera.Caption = "&Grava" Then
    grava_rec
    Rs.Update
    CmdAltera.Caption = "&Altera"
    MsgBox "Alteração gravada ! ", , "Operação com Sucesso!!!"
  End If
  Exit Sub

trataerro:
  
  If Err.Number = -2147467259 Then

        MsgBox "Erro número : " & Err.Number & "  --> RG já Existe no Vivo !!! " & Chr(13) _
        & "Favor verificar pelo RG e confirmar a duplicidade " & Chr(13) _
        & " Caso exista use Alterar. NÃO PODE HAVER (RG) IGUAL" _
        & Chr(13) & "NO MORTO ou NO VIVO  " _
        & Chr(13) & "Operação Cancelada", vbCritical, "Duplicidade de RG"
        'Resume Next   'retorna a ação para a linha de código subsequente áquela que
                      'gerou o erro
       CmdAltera.Caption = "&Altera"
       clear_ctrls
       
  End If
  
  Exit Sub
End Sub

Quero repetir na Inclusão também e acho que vai acontecer a mesma coisa.

Flecha :angry:

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Kuroi,

Entro no modo de alteração, set focus vai para o nome, passo para o RG e altero o RG para um que já exista na tabela dá o erro de duplicidade -2147467259, eu cerquei ele.

Quando escolho na mensagem do erro OK para retornar a tela deveria voltar o campo RG com os dados que estavam antes de "tentar alterar que gerou o erro" ou seja não concretiza a alteração.

Tipo não tem como cancelar o evento depois da mensagem de erro, voltando o registro da tela para como estava?

Mesmo que eu mande limpar todas as box e voltar o comando gravar para editar, fica sem nada nos box ai vou para o próximo ou anterior ou ultimo ou primeiro registro pela navegação e vem o erro de duplicidade abortando o programa Debug ou End.

Será que expliquei certo?

Eu coloquei esse arquivo no 4shared para você. não sei se já estava com as alterações de controle de duplicidade no alterar e no incluir.

http://www.4shared.com/file/nmh_n9xp/Cadastro_do_ZERO.html

Flecha

Editado por Flecha
Link para o comentário
Compartilhar em outros sites

  • 0

Raphael,

Eu havia colocado um rs.cancelupdate no final da mensagem e estava "remendado".

Com sua informação eu form_load e funcionou, abandonou a alteração e leu a tabela novamente, ficando com o primeiro registro na tela.

Resolvido e Obrigado.

P.S Na inclusão vou postar outro tópico.

Flecha

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...