IDENTIFICAR QUE HOUVE ERROS
olá. Tenho uma sub que contem os comandos que identificam erros, por exemplo,
[txt-color=#0000f0]Sub CarregarArquivoXLS()
On Error GoTo Erros
(...programa)
Exit Sub
Erros:
MsgBox [Ô]O arquivo [Ô][Ô][Ô] & arqbase & [Ô][Ô][Ô] não foi encontrado. Verifique o perÃodo solicitado![Ô]
End Sub[/txt-color]
Gostaria de saber como identifico que houve erro nesta sub quando estou chamando esta de dentro de outra sub? Assim:
[txt-color=#0000f0]Sub Teste()
Call CarregarArquivoXLS
If (deu erro na sub anterior) then
(...)
else
(...)
End If
End Sub[/txt-color]
[txt-color=#0000f0]Sub CarregarArquivoXLS()
On Error GoTo Erros
(...programa)
Exit Sub
Erros:
MsgBox [Ô]O arquivo [Ô][Ô][Ô] & arqbase & [Ô][Ô][Ô] não foi encontrado. Verifique o perÃodo solicitado![Ô]
End Sub[/txt-color]
Gostaria de saber como identifico que houve erro nesta sub quando estou chamando esta de dentro de outra sub? Assim:
[txt-color=#0000f0]Sub Teste()
Call CarregarArquivoXLS
If (deu erro na sub anterior) then
(...)
else
(...)
End If
End Sub[/txt-color]
você pode declarar uma variavel do tipo bolean no general do form e usa-la assim
no general do form
Dim ErroNaSub As Boolean
depois na primeira sub
Sub CarregarArquivoXLS()
On Error GoTo Erros
(...programa)
Exit Sub
Erros:
MsgBox [Ô]O arquivo [Ô][Ô][Ô] & arqbase & [Ô][Ô][Ô] não foi encontrado. Verifique o perÃodo solicitado![Ô]
ErroNaSub = True
End Sub
depois
Sub Teste()
If ErroNaSub = True then
MsgBox [Ô]Houve erro na sub anterior[Ô]
else
Call CarregarArquivoXLS
End If
End Sub
veja se assim vc consegue o que deseja
no general do form
Dim ErroNaSub As Boolean
depois na primeira sub
Sub CarregarArquivoXLS()
On Error GoTo Erros
(...programa)
Exit Sub
Erros:
MsgBox [Ô]O arquivo [Ô][Ô][Ô] & arqbase & [Ô][Ô][Ô] não foi encontrado. Verifique o perÃodo solicitado![Ô]
ErroNaSub = True
End Sub
depois
Sub Teste()
If ErroNaSub = True then
MsgBox [Ô]Houve erro na sub anterior[Ô]
else
Call CarregarArquivoXLS
End If
End Sub
veja se assim vc consegue o que deseja
Isso aà é gambiarra. Desculpe.
Na minha opinião o correto seria transformar essa Sub em Function e de acordo com o resultado você realiza outro comando.
Espero ter ajudado.
Na minha opinião o correto seria transformar essa Sub em Function e de acordo com o resultado você realiza outro comando.
Function CarregarArquivoXLS() As Boolean
On Error GoTo Erros
(...programa)
CarregarArquivoXLS = True [ô]O arquivo foi carregado sem erros
Exit Sub
Erros:
MsgBox [Ô]O arquivo [Ô][Ô][Ô] & arqbase & [Ô][Ô][Ô] não foi encontrado. Verifique o perÃodo solicitado![Ô]
CarregarArquivoXLS = False [ô]Erro ao carregar o arquivo
End Sub
Sub Teste()
Dim bErro As Boolean
[ô]Executa a function e guarda o resultado
bErro = CarregarArquivoXLS
If bErro then [ô]deu erro na sub anterior
(...)
Else
(...)
End If
End Sub
Espero ter ajudado.
Ué quem disse que não era gambiarra, e você só mudou a gambiarra de nome, pois não sendo algo nativo do VB só pode ser gambiarra mesmo, e faz parte da programação (vulgo POG).
Tópico encerrado , respostas não são mais permitidas