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

    [Resolvido]Dúvida com tratamento de erro

    avatar
    rclenzi
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 26
    Registrado : 10/10/2012

    [Resolvido]Dúvida com tratamento de erro Empty Dúvida com tratamento de erro

    Mensagem  rclenzi 26/10/2012, 16:16

    Pessoal, considerando o seguinte código:
    Código:

    Public Function FunçãoDividePorZero()
        Dim QtdeErros As Integer

    On Error GoTo Err_FunçãoDividePorZero:
    DividePorZero:
        Debug.Print 2 / 0
       
    Err_FunçãoDividePorZero:
        Err.Clear
        QtdeErros = QtdeErros + 1
        Debug.Print QtdeErros
        GoTo DividePorZero
    End Function 

    O objetivo é fazer entrar em looping, mas quando gera o segundo erro, o access nao vai para o Err_FunçãoDividePorZero como na primeira vez.
    Cláudio Más
    Cláudio Más
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1314
    Registrado : 21/01/2012

    [Resolvido]Dúvida com tratamento de erro Empty Re: [Resolvido]Dúvida com tratamento de erro

    Mensagem  Cláudio Más 26/10/2012, 17:27

    Exatamente. É assim mesmo, o erro só é interceptado uma única vez.

    Uma pergunta, se entrar em loop normalmente é algo não desejado, por que está tentando isso?
    avatar
    rclenzi
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 26
    Registrado : 10/10/2012

    [Resolvido]Dúvida com tratamento de erro Empty Re: [Resolvido]Dúvida com tratamento de erro

    Mensagem  rclenzi 26/10/2012, 17:40

    Isso é um exemplo de uma idéia maior no sistema, no tratamento do erro tem exatamente quando tem que sair do looping, o problema é fazer ficar no looping.
    Vou tentar depois separar em duas funções para que fique no looping.
    Cláudio Más
    Cláudio Más
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1314
    Registrado : 21/01/2012

    [Resolvido]Dúvida com tratamento de erro Empty Re: [Resolvido]Dúvida com tratamento de erro

    Mensagem  Cláudio Más 26/10/2012, 17:58

    Não seria programação recursiva o que está precisando implementar, pensando se tratar de loop?
    avatar
    rclenzi
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 26
    Registrado : 10/10/2012

    [Resolvido]Dúvida com tratamento de erro Empty Re: [Resolvido]Dúvida com tratamento de erro

    Mensagem  rclenzi 26/10/2012, 18:14

    Não seria isso, a função tem um array com os endereços dos servidores do sistema, a idéia é percorrer o array até achar um servidor válido.
    Mas quando o endereço do servidor não existe, a função Open do ADO dispara um erro, no tratamento do erro fiz os controles do array e etc.
    O problema que o esquema todo fica prejudicado pelo fato de tratar o erro uma só vez.
    Cláudio Más
    Cláudio Más
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1314
    Registrado : 21/01/2012

    [Resolvido]Dúvida com tratamento de erro Empty Re: [Resolvido]Dúvida com tratamento de erro

    Mensagem  Cláudio Más 26/10/2012, 18:27

    Faz um loop percorrendo o array, dentro desse loop (Do While...) passa o endereço do servidor para uma outra função, que retorna verdadeiro se o endereço do servidor é válido, ou falso.

    Mais ou menos assim:

    Código:
    i = 0
    Do While True
        If Verifica_Servidor(array(i)) Then Exit Do
        i = i + 1
    Loop
    MsgBox "O servidor válido é " & array(i)

    Function Verifica_Servidor(endereço as String) As Boolean

    If endereço ok Then
        Verifica_Servidor = True
    Else
        Verifica_Servidor = False
    End If

    End Function


    Última edição por Cláudio Más em 26/10/2012, 18:33, editado 1 vez(es)
    avatar
    rclenzi
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 26
    Registrado : 10/10/2012

    [Resolvido]Dúvida com tratamento de erro Empty Re: [Resolvido]Dúvida com tratamento de erro

    Mensagem  rclenzi 26/10/2012, 18:32

    Separando em duas funçõe sei que vai dar certo, só queria ver se tinha um jeito de fazer em uma só.
    Depois quando sobrar um tempo vou testar uma outra idéia dai digo se deu certo.
    Cláudio Más
    Cláudio Más
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1314
    Registrado : 21/01/2012

    [Resolvido]Dúvida com tratamento de erro Empty Re: [Resolvido]Dúvida com tratamento de erro

    Mensagem  Cláudio Más 26/10/2012, 18:36

    Em uma única função, só se existir uma função vb/vba para validar endereço de servidor, ou utilizando recursividade mesmo.
    avatar
    rclenzi
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 26
    Registrado : 10/10/2012

    [Resolvido]Dúvida com tratamento de erro Empty Re: [Resolvido]Dúvida com tratamento de erro

    Mensagem  rclenzi 26/10/2012, 19:01

    Isso mesmo, separei em duas funções e agore deu certo.
    Antes de postar o tópico tambem tinha feito isso, mas não tinha incluido o On Error Resume Next na função de verificação do servidor.

    Conteúdo patrocinado


    [Resolvido]Dúvida com tratamento de erro Empty Re: [Resolvido]Dúvida com tratamento de erro

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 23/10/2024, 04:22