MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]Tratamento de erro VBA Access

    avatar
    valdir.urcinosilva
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    Registrado : 05/05/2017

    [Resolvido]Tratamento de erro VBA Access Empty [Resolvido]Tratamento de erro VBA Access

    Mensagem  valdir.urcinosilva em 9/9/2019, 20:41

    Pessoal boa tarde,

    Sou novo no tratamento de erros em VBA e gostaria do auxílio de vocês na seguinte questão:

    Tenho um formulário de cadastro de materiais de expediente e quando tento excluir um produto que já tem algo vinculado a ele, dá um erro e gostaria de personalizar essa mensagem de erro para não ter que depurar no VBA.

    meu código é esse:

    Private Sub btExcluir_Click()
    Dim VarCampo As String
    VarCampo = nomeProduto
    If MsgBox("Deseja excluir o item: " & VarCampo & "?", vbYesNo + vbInformation, "Atenção") = vbYes Then
    DoCmd.SetWarnings False ' Desativa mensagem padrão do Access
    DoCmd.RunCommand acCmdDeleteRecord
    MsgBox ("Item excluido com sucesso"), vbInformation, "Excluido"
    Me.lstCadastro.Requery
    Else
    MsgBox ("Exclusão cancelada"), vbInformation, "Cancelado"
    End If
    End Sub


    Está dando mensagem: Erro em tempo de execução 3200. O registro não pode ser excluido ou alterado porque a tabela 'l' inclui registros relacionados a ele.
    Anexos
    [Resolvido]Tratamento de erro VBA Access Attachmenterro3200.jpg
    Você não tem permissão para fazer download dos arquivos anexados.
    (54 Kb) Baixado 6 vez(es)
    thiagomcosta
    thiagomcosta
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 368
    Registrado : 23/01/2017

    [Resolvido]Tratamento de erro VBA Access Empty Re: [Resolvido]Tratamento de erro VBA Access

    Mensagem  thiagomcosta em 9/9/2019, 21:28

    A instrução que você  precisa conhecer é "On Error"
    https://docs.microsoft.com/pt-br/office/vba/language/reference/user-interface-help/on-error-statement

    Tratamentos de erros no VBA não é minha praia e eu costumo usar somente em casos extremos (por pura preguiça), pois os meus sistemas são usados por poucos usuários e eu consigo administrar bem os erros que ocorrem. Então não poderei lhe ajudar muito nisso.
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1160
    Registrado : 13/12/2016

    [Resolvido]Tratamento de erro VBA Access Empty Re: [Resolvido]Tratamento de erro VBA Access

    Mensagem  Alexandre Fim em 9/9/2019, 21:40

    Aproveitando a oportunidade, segue código para tratamento de erros:

    Código:


    Private Sub btExcluir_Click()
    On Error GoTo trata_erro
    Dim VarCampo        As String

        VarCampo = nomeProduto

        If MsgBox("Deseja excluir o item: " & VarCampo & "?", vbYesNo + vbInformation, "Atenção") = vbYes Then
            DoCmd.SetWarnings False ' Desativa mensagem padrao do Access
            DoCmd.RunCommand acCmdDeleteRecord
            MsgBox ("Item excluido com sucesso"), vbInformation, "Excluido"
            Me.lstCadastro.Requery
        Else
            MsgBox ("Exclusão cancelada"), vbExclamation, "Cancelado"
        End If
       
        Exit Sub

    trata_erro:
        If Err.Number = 3200 Then
            MsgBox "    *** EXCLUSÃO NAO PERMITIDA ***  " & vbCrLf & _
                  "Existem Pedidos de Vendas relacionados ao produto.", vbExclamation, "Aviso"
        Else
            MsgBox "Erro ocorrido: " & Err.Number & " - " & Err.Description & "", vbCritical, "Erro"
        End If
                 
        Exit Sub
       
    End Sub




    Espero ter ajudado.

    Boa sorte.


    .................................................................................
    - Procure sempre anexar seu projeto para análise do problema/dúvida.
    - Ao copiar/colar um código VBA, procure entender seu funcionamento.
    - Se o problema foi resolvido, não se esqueça de marcar o tópico como RESOLVIDO.
    leoni_dias
    leoni_dias
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 180
    Registrado : 14/08/2011

    [Resolvido]Tratamento de erro VBA Access Empty Re: [Resolvido]Tratamento de erro VBA Access

    Mensagem  leoni_dias em 9/9/2019, 23:36

    Boa noite.

    Como ajuda, um tratamento de erros que peguei com um colega aqui e uso sempre.

    Chamando o tratamento...

    On Error GoTo trato

    ........

    Trato: ExplicaErro

    --------------------------------------------------------------------------------

    Em um módulo...

    Public Function ExplicaErro() As String

    Dim NomeObjeto, TipoObjeto, NumeroErro, NomeErro As String
    NumeroErro = Err.Number
    NomeErro = Err.Description
    NomeObjeto = Application.CurrentObjectName
       If Application.CurrentObjectType = acForm Then
             TipoObjeto = "Formulário "
    ElseIf Application.CurrentObjectType = acReport Then
             TipoObjeto = "Relatório "
     Else
             TipoObjeto = "Padrão "
    End If

    ExplicaErro = MsgBox(constAviso & vbCrLf _
                 & constTipoObjeto & TipoObjeto & NomeObjeto & vbCrLf _
                 & constErroNumero & NumeroErro & vbCrLf _
                 & constErroNome & NomeErro & vbCrLf _
                 & vbCrLf _
                 & constOkay & "        " & Now, vbOKOnly, constTitulo)

    End Function
    avatar
    valdir.urcinosilva
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    Registrado : 05/05/2017

    [Resolvido]Tratamento de erro VBA Access Empty Tratamento de erro VBA Access

    Mensagem  valdir.urcinosilva em 11/9/2019, 15:17

    TOP TOP Pessoal!
    Problema resolvido com a adaptação do código do Alexandre Fim.
    Obrigado!
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1160
    Registrado : 13/12/2016

    [Resolvido]Tratamento de erro VBA Access Empty Re: [Resolvido]Tratamento de erro VBA Access

    Mensagem  Alexandre Fim em 11/9/2019, 16:30

    Valeu Valdir cheers cheers
    O fórum agradece.

    Abraços e sucesso !!!


    .................................................................................
    - Procure sempre anexar seu projeto para análise do problema/dúvida.
    - Ao copiar/colar um código VBA, procure entender seu funcionamento.
    - Se o problema foi resolvido, não se esqueça de marcar o tópico como RESOLVIDO.

      Data/hora atual: 16/1/2021, 11:59