MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

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


2 participantes

    Log de Erros salvo em tabela

    avatar
    Fernando Lucas
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 17
    Registrado : 12/09/2017

    Log de Erros salvo em tabela Empty Log de Erros salvo em tabela

    Mensagem  Fernando Lucas 21/1/2024, 21:57

    Olá pessoal,
    Incomodado de como o Access trata os erros, compartilho com o grupo uma solução. Criei uma rotina para salvar os erros ocorridos em uma tabela, aberto a sugestões.
    Primeiro criar uma tabela com os campos citados na procedure LogError
    Nos formulários:
       On Error GoTo trataErro
    .
    .
    .
    sair:
       Exit Sub
    trataErro:
       LogError Err.Number, Err.Description, Me.Form.Name, "NomeRotina", Erl
       Resume sair:
    End Sub

    Para as rotinas localizadas nos módulos:
       On Error GoTo trataErro
    .
    .
    .
    sair:
       Exit Sub
    trataErro:
       LogError Err.Number, Err.Description, "Modulo", "NomeRotina", Erl
       Resume sair:
    End Sub

    Public Sub LogError(ByVal ErrNumber As Long, ByVal ErrDesc As String, Optional FormNome As String = "", Optional ProcedureNome As String = "", Optional Linha As Long = 0)
     ' Rotina para salvar os erros
     ' O parametro Erl é para os numeros das linhas numeradas.
     '  by Fernando Lucas,   2024/01
     
     On Error Resume Next
       Dim db As DAO.Database
       Dim rs As DAO.Recordset
       Set db = CurrentDb()
       Set rs = db.OpenRecordset("tLogError")
       With rs
           .AddNew
           ![ErrNumber] = ErrNumber
           ![ErrDesc] = ErrDesc
           ![ErrData] = Now()
           ![ErrForm] = FormNome
           ![ErrProcedure] = ProcedureNome
           ![ErrLine] = Linha
           ![Versao] = gVersao             ‘  variável publica/global da versão do Front End
           ![Id_Usuario] = TempVars!IdUsuario.Value
           ![ComputerName] = Environ$("COMPUTERNAME")
           .Update
           .Close
       End With
       db.Close
       Set rs = Nothing:     Set db = Nothing
       
       MsgBox "Erro:  " & ErrNumber & vbCrLf & ErrDesc & vbCrLf & "Formulário/Rotina:  " & FormNome & " / " &  ProcedureNome, vbCritical, "Aviso de erro"
       On Error GoTo -1
    End Sub

    Aberto a comentários e sugestões.
    Obrigado,
    Fernando Lucas


    Última edição por Fernando Lucas em 23/1/2024, 14:14, editado 1 vez(es)

    Marcelo David gosta desta mensagem

    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3873
    Registrado : 21/04/2011

    Log de Erros salvo em tabela Empty Re: Log de Erros salvo em tabela

    Mensagem  Marcelo David 22/1/2024, 19:01

    Tópico movido para a sala de tutorias
    Excelente abordagem, parabéns e gratos por compartilhar!


    .................................................................................
    Aprenda como criar formulário desacoplado.
    Conheça meu canal no Youtube e se inscreva.
    Log de Erros salvo em tabela Marcel11

    Fernando Lucas gosta desta mensagem


      Data/hora atual: 29/4/2024, 11:08