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


3 participantes

    [Resolvido]Tratamento de Erros, exibir nome do procedimento

    avatar
    Convidado
    Convidado


    [Resolvido]Tratamento de Erros, exibir  nome do procedimento Empty Tratamento de Erros, exibir nome do procedimento

    Mensagem  Convidado 31/12/2012, 13:51

    Bom dia amigos, é possível na ocorrencia de um erro, exibir o nome do procedimento em que o mesmo ocorreu?

    Aqui na linha em vermelho eu coloco o nome do procedimento, o que gostaria é que esse nome fosse preenchido automaticamente a exemplo do Nome do form ( " & Me.Name & ") em azul
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'Tratamento de Erros
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Exit_TrataErro:
    DoCmd.Hourglass False
    DoCmd.Echo True
    Exit Sub
    TrataErro:
    Select Case err.Number
    Case 2105
    PlaySound fLocalBd & "\div\sons\msg_err.wav", 1, 1
    MsgBox "Você não tem permissão para realizar este procedimento", vbCritical, "NEGADO"
    Case 2046
    PlaySound fLocalBd & "\div\sons\msg_err.wav", 1, 1
    MsgBox "Você não tem permissão para realizar este procedimento", vbCritical, "NEGADO"
    Case 3075
    PlaySound fLocalBd & "\div\sons\msg_err.wav", 1, 1
    MsgBox "Selecione primeiro o Tipo a ser excluído", vbCritical, "Atenção"
    Case Else
    DoCmd.Hourglass False
    DoCmd.Echo True
    MsgBox "Erro Gerado no :" & Me.Name & " (BtnNovo_Click)" _
    & vbNewLine & "Erro Número: " & err.Number _
    & vbNewLine & "linha: " & Erl _
    & vbNewLine & "Descrição: " & err.Description _
    & vbNewLine & "Por favor contate o Administrador de Sistema.", vbCritical, err.Number & ", linha:" & Erl
    End Select

    Cumprimentos.
    avatar
    Convidad
    Convidado


    [Resolvido]Tratamento de Erros, exibir  nome do procedimento Empty Re: [Resolvido]Tratamento de Erros, exibir nome do procedimento

    Mensagem  Convidad 31/12/2012, 15:04

    aqui:
    http://allenbrowne.com/ser-23a.html

    bom ano novo
    avatar
    Convidado
    Convidado


    [Resolvido]Tratamento de Erros, exibir  nome do procedimento Empty Re: [Resolvido]Tratamento de Erros, exibir nome do procedimento

    Mensagem  Convidado 31/12/2012, 21:05

    Boas Ricardo, espero que esteja bem neste final de ano...Depois verei o link.. hoje já estou em Águas...LOL..

    Feliz Ano Novo e muita Paz e Prosperidade.

    Abraços.
    avatar
    Convidado
    Convidado


    [Resolvido]Tratamento de Erros, exibir  nome do procedimento Empty Re: [Resolvido]Tratamento de Erros, exibir nome do procedimento

    Mensagem  Convidado 3/1/2013, 18:47

    Boas Ricardo, andei olhando o Link.. e confesso que não entendi como chamar a função em um procedimento... Podes ajudar-me?

    Cumprimentos.
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Tratamento de Erros, exibir  nome do procedimento Empty Re: [Resolvido]Tratamento de Erros, exibir nome do procedimento

    Mensagem  Marcelo David 3/1/2013, 22:45

    Boa noite PILOTO, Feliz 2013!
    Esta dúvida eu tenho também.
    Em pesquisa até já encontrei algo que precisa
    utilizar uma DLL, mas nem cheguei a baixar...
    Vamos ver como aplicar esse código então!


    .................................................................................
    Aprenda como criar formulário desacoplado.
    Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Tratamento de Erros, exibir  nome do procedimento Marcel11
    avatar
    Convidado
    Convidado


    [Resolvido]Tratamento de Erros, exibir  nome do procedimento Empty Re: [Resolvido]Tratamento de Erros, exibir nome do procedimento

    Mensagem  Convidado 4/1/2013, 12:34

    Eu tenho dado atenção especial ao tratamento de erros, principalmente ao se distribuir aplicativos, pois em caso de ocorreência o usuário poderá lhe informar os dados do erro, e não precisa perder tempo em testes para descobrir onde o mesmo ocorreu, no código que postei acima em cada procedimento eu coloco o nome do mesmo no tratamento, assim identificando o form e o procedimento onde ocorreu o erro.

    Se o nome do proceddimento puder ser colocado automaticamente como o nome do form em que ocorreu, isso pouparia tempo na colocação do tratamento do erro no procedimento.


    Para aparecer a linha, é necessário numerar o procedimento, da seguinte forma:


    Private Sub btnInserirLanc_Click()
    On Error GoTo TrataErro
    Dim BancoNome As String
    1 PlaySound fLocalBd & "\div\sons\click.wav", 1, 1
    2 BancoNome = DLookup("CpBanco_Nome", "tblBanco", "ID_Banco= " & Me.strBanco & "")
    3 If MsgBox("Deseja Inserir um novo Lançamento para" _
    & vbNewLine & "a conta do Banco " & BancoNome & "?", vbYesNo + vbQuestion + vbDefaultButton1, "INSERIR HISTÓRICO") = vbYes Then
    'Checa se a data atual é maior que a data do último lançamento, sendo, cria novo movimento
    4 If DCount("*", "tbl_DataMov", "Data_Mov = #" & Format(Date, "dd/mm/yyyy") & "# And Banco = " & Me.strBanco & "") = 0 Then
    5 Call movbb_Click
    6 End If
    'Executa consulta inserção para inserir os valores na tbl_Movimento
    7 CurrentDb.Execute "INSERT INTO tbl_Movimento (Data_Mov_e, Banco_ID, Historico_ID, DepositoDInheiro, DepositoChBloq,DebitosDiversos, ChBloqEntrada, ChBloqEstorno)" _
    & " Values(#" & strData & "#, """ & Me.strBanco & """, """ & Me.txtIdHist.Value & """, """ & Me.txtDepDin.Value & """,""" & Me.txtDepCh.Value & """, " _
    & " """ & Me.txtDeb.Value & """,'NÃO','NÂO')"
    'limpa os campos
    8 Me.txtDeb = "0,00": Me.txtDepCh = "0,00": Me.txtDepDin = "0,00": Me.txtHistorico = ""
    9 Me.Lst_Historico.Requery
    End If
    Exit Sub
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'Tratamento de Erros
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Exit_TrataErro:
    DoCmd.Hourglass False
    DoCmd.Echo True
    Exit Sub
    TrataErro:
    Select Case err.Number
    Case 5
    Exit Sub
    Case Else
    DoCmd.Hourglass False
    DoCmd.Echo True
    MsgBox "Erro Gerado no: " & Me.Name & " (BtnInserir_CLick)" _
    & vbNewLine & "Erro Número: " & err.Number _
    & vbNewLine & "linha: " & Erl _
    & vbNewLine & "Descrição: " & err.Description _
    & vbNewLine & "Por favor contate o Administrador de Sistema.", vbCritical, err.Number & ", linha:" & Erl
    End Select
    End Sub


    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Tratamento de Erros, exibir  nome do procedimento Empty Re: [Resolvido]Tratamento de Erros, exibir nome do procedimento

    Mensagem  Convidado 4/1/2013, 13:42

    Este suplemento é bem legal e numera as linhas do procedimento dentre outras funcionalidades:

    http://www.mztools.com/v3/download.aspx

    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Tratamento de Erros, exibir  nome do procedimento Empty Re: [Resolvido]Tratamento de Erros, exibir nome do procedimento

    Mensagem  Convidado 4/1/2013, 14:00

    Aqui tem uma ideia, mas mesmo assim tem que declarar uma constante...

    A ideia é pegar a procedure automaticamente.

    http://www.ambienteoffice.com.br/officevba/tratamento_de_excecao/

    Cumprimentos.
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Tratamento de Erros, exibir  nome do procedimento Empty Re: [Resolvido]Tratamento de Erros, exibir nome do procedimento

    Mensagem  JPaulo 4/1/2013, 14:53

    Sugestão;

    MsgBox "Error: (" & Err.Number & ") " & Screen.ActiveControl.Name, vbCritical



    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Tratamento de Erros, exibir  nome do procedimento Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Tratamento de Erros, exibir  nome do procedimento Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Tratamento de Erros, exibir  nome do procedimento Folder_announce_new Instruções SQL como utilizar...
    avatar
    Convidado
    Convidado


    [Resolvido]Tratamento de Erros, exibir  nome do procedimento Empty Re: [Resolvido]Tratamento de Erros, exibir nome do procedimento

    Mensagem  Convidado 4/1/2013, 16:10

    Boas JP, Obrigado pela participação,

    Uma boa sugestão, que resolve a questão em parte, pois para procedimentos em objetos funciona, e para Funções e sub's?

    Se tiver mais sugestão fico grato.

    Saudações.
    avatar
    Convidado
    Convidado


    [Resolvido]Tratamento de Erros, exibir  nome do procedimento Empty Re: [Resolvido]Tratamento de Erros, exibir nome do procedimento

    Mensagem  Convidado 4/1/2013, 18:13

    Bem... Para botões cheguei neste código que particularmente achei muito informativo....
    Só faltando a questão do nome do preocedimento caso o mesmo seja uma função

    Utilizei o MzTools para numerar as linhas do código, o que retorna o número da linha em que ocorreu o erro.


    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'Tratamento de Erros
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Exit_TrataErro:
    DoCmd.Hourglass False
    DoCmd.Echo True
    Exit Sub
    TrataErro:
    Select Case err.Number
    Case 0
    'Não é um erro
    Case Else
    DoCmd.Hourglass False
    DoCmd.Echo True
    MsgBox "Erro Gerado no: " & Me.Name & "" _
    & vbNewLine & "No Procedimento: " & Screen.ActiveControl.Name & "" _
    & vbNewLine & "Erro Número: " & err.Number _
    & vbNewLine & "linha: " & Erl _
    & vbNewLine & "Descrição: " & err.Description _
    & vbNewLine & "Por favor contate o Administrador de Sistema.", vbCritical, err.Number & ", linha:" & Erl
    End Select


    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Tratamento de Erros, exibir  nome do procedimento Empty Re: [Resolvido]Tratamento de Erros, exibir nome do procedimento

    Mensagem  Convidado 4/1/2013, 19:02

    A imagem da MsgBox exibindo um erro:

    [Resolvido]Tratamento de Erros, exibir  nome do procedimento MsgBoxErro
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Tratamento de Erros, exibir  nome do procedimento Empty Re: [Resolvido]Tratamento de Erros, exibir nome do procedimento

    Mensagem  JPaulo 7/1/2013, 09:22

    Bom Dia Piloto;

    Agora que você mostrou a mensagem, vejo que está equivocado em relação ao Procedimento;

    O que você apresenta apresenta ae, é o nome do Objecto e não do Procedimento, se fosse o nome do Procedimento seria Ao Pressionar, ou Depois de Atualizar, ou, ou, ou....

    Para o que pretende, que é o nome do objecto, é mais facil de obter, com um simples;

    Dim ctl As Control

    For Each ctl In Form.Controls

    Pense nisso.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Tratamento de Erros, exibir  nome do procedimento Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Tratamento de Erros, exibir  nome do procedimento Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Tratamento de Erros, exibir  nome do procedimento Folder_announce_new Instruções SQL como utilizar...
    Avelino João
    Avelino João
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Angola
    Mensagens : 316
    Registrado : 10/03/2012

    [Resolvido]Tratamento de Erros, exibir  nome do procedimento Empty Re: [Resolvido]Tratamento de Erros, exibir nome do procedimento

    Mensagem  Avelino João 7/1/2013, 10:27

    Bom dia pessoal eu uso dessa forma paa fazer tratamento de um erro no botao

    Private Sub Comando121_Click()


    If sErr = -1 Then 'Habilita tratamento de erro
    On Error GoTo Comando121_Click_Erro
    End If


    Me.Lista.Requery
    Me.Página2.SetFocus 'Segue para a primeira guia


    On Error GoTo 0
    Exit Sub


    Comando121_Click_Erro:


    MsgBox "Ocorreu um erro na aplicação." & vbCr & "Relate os dados abaixo ao suporte." & vbCr & _
    "Erro Nº: " & err.Number & vbCr & _
    "Descrição do erro: " & err.Description & vbCr & _
    "Módulo: " & "Form_Processador" & vbCr & _
    "Procedimento: " & "Comando121_Click", vbExclamation,"teste"
    End Sub


    .................................................................................
    Proaccess - Angola
    avatar
    Convidado
    Convidado


    [Resolvido]Tratamento de Erros, exibir  nome do procedimento Empty Re: [Resolvido]Tratamento de Erros, exibir nome do procedimento

    Mensagem  Convidado 7/1/2013, 11:02

    Boas João Paulo, desculpando-me pela confusão quanto a procedimento ou objeto, fato é que eu quero apontar no erro... Ou o objeto ou o procedimento.

    Por exemplo... Se o procedimento ficar no click de um botão ou em algum evento de um objeto, mostra o nome do objeto.. Neste caso o ControlActive.Name resolveu a questão.

    No entanto se o erro for em uma função... como exibir o nome da funçao onde ocorreu o erro.

    Suponha que:

    Private Sub Btn_Click()
    Call FunçãoX
    End Sub

    Private Function Funçãox()
    On Error Goto TrataErro
    blablablabla
    Tratamento de Erro
    EndFunction

    Supondo que o erro aconteceu na função... no tratamento de erro exibir:
    Erro no procedimento: Funcao(x)


    Espero que tenha entendido.


    Avelino007, o que justamente estou tentando fazer e a automatização do preenchimento do objeto e procedimento no tratamento de erros, para que ao aplicar o tratamento de erros não ser necessario modificar o nome do objeto ou procedimento.


    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Tratamento de Erros, exibir  nome do procedimento Empty Re: [Resolvido]Tratamento de Erros, exibir nome do procedimento

    Mensagem  Convidado 7/1/2013, 11:05

    Ha JP eu entendi o que quis dizer... Procedimentos como disse seriam os eventos...

    Então... Eu gostaria de ter o resultado tanto do procedimento, como do nome do objeto ou de uma função...

    Alguma ideia?
    avatar
    Convidado
    Convidado


    [Resolvido]Tratamento de Erros, exibir  nome do procedimento Empty Re: [Resolvido]Tratamento de Erros, exibir nome do procedimento

    Mensagem  Convidado 7/1/2013, 11:09

    Resumindo.... Pretendo ter de forma automatizada:

    1 - Nome do Objeto
    2 - Nome do Procedimento (Eventos)
    3 - Se o erro for em uma sub ou função (o nome da função)

    1 - No caos Nome do Objeto o ActiveControl.Name resolve
    2 - ?
    3 - ?
    Da uma luz amigão.

    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Tratamento de Erros, exibir  nome do procedimento Empty Re: [Resolvido]Tratamento de Erros, exibir nome do procedimento

    Mensagem  Convidado 11/1/2013, 18:56

    Tópico resolvido, Modelo postado o repositório.

    Obrigado a todos.

    Conteúdo patrocinado


    [Resolvido]Tratamento de Erros, exibir  nome do procedimento Empty Re: [Resolvido]Tratamento de Erros, exibir nome do procedimento

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 13/5/2024, 20:44