NÃO CONSEGUINDO TRATAR ERRO DE INTERNET!

SOUZA 06/07/2014 12:39:57
#439364
Pessoal eu tenho uma tela que busca uma imagem e um texto no servidor meu na net.

Utilizo um router sem fio e quando tenho prob de internet ele pode gerar dois erros!
Se a o router wifi nao estiver ligado ele gera o erro (-2147012889)
Se o router ta ligado mas sem internet ele gera erro (55)

Então quando isso ocorre eu preciso direcionar para ele buscar em uma pasta os arquivos temporarios JPG e o TXT para nao parar o sistema!
Dó que não estou conseguindo tratar os dois erros na mesma linha de execução.

Segue o trecho do codigo:

[txt-color=#e80000]On Error GoTo TrataErro[/txt-color]

[ô]Carrega a imagem online da noticia
Set WinHttpReq = CreateObject([Ô]WinHttp.WinHttpRequest.5.1[Ô])

Dim d() As Byte
WinHttpReq.open [Ô]GET[Ô], [Ô]http://www.servidor.com.br/JPG/S1.jpg[Ô], False [ô] Send the HTTP Request.

[ô]##########################################################
[ô]Inicia tratamento de rro!
TrataErro:
If Err.Number = -2147012889 Then
Timer1.Enabled = False [ô] para o timer1
Timer2.Enabled = True [ô] inicia o termer2 para buscar no hd os arquivo nao encontrados na NET
Exit Sub
[ô]**************************************************************
Else

WinHttpReq.send
Debug.Print WinHttpReq.Status & [Ô] - [Ô] & WinHttpReq.StatusText [ô]200 means success

Open [Ô]S1.jpg[Ô] For Binary As #1 [txt-color=#e80000] [ô]Só que quando o router ta ligado e sem internet ele da erro aqui tb ai que nao consigo tratar o erro denovo![/txt-color]
d() = WinHttpReq.responseBody
Put #1, 1, d()
Close

Image1.Picture = LoadPicture([Ô]S1.jpg[Ô])
Set WinHttpReq = Nothing

Image1.Width = Me.ScaleWidth
Image1.Height = Me.ScaleHeight

[ô]###################################################################################
[ô]Carrega o texto online
Dim sTxt As String, bVet() As Byte
Dim iNum As Integer

bVet() = Inet1.OpenURL(txtURL.Text, 1)
sTxt = [Ô][Ô]

For iNum = 0 To UBound(bVet) - 1
sTxt = sTxt + Chr(bVet(iNum))
Next

Text1.Text = sTxt
Label1 = sTxt
End If
MARCELO.TREZE 07/07/2014 09:29:58
#439373
Resposta escolhida
Olha colega sua rotina ta meio estranha veja bem, o tratamento de erro deve ficar no final do código, após um exit sub, exit fun, etc. para que seja acionado apenas quando houver erro mesmo, então tente isso:

On Error GoTo TrataErro

[ô]Carrega a imagem online da noticia
Set WinHttpReq = CreateObject([Ô]WinHttp.WinHttpRequest.5.1[Ô])

Dim d() As Byte
WinHttpReq.open [Ô]GET[Ô], [Ô]http://www.servidor.com.br/JPG/S1.jpg[Ô], False [ô] Send the HTTP Request.

[ô]###################################################################################
[ô]Carrega o texto online
Dim sTxt As String, bVet() As Byte
Dim iNum As Integer

bVet() = Inet1.OpenURL(txtURL.Text, 1)
sTxt = [Ô][Ô]

For iNum = 0 To UBound(bVet) - 1
sTxt = sTxt + Chr(bVet(iNum))
Next

Text1.Text = sTxt
Label1 = sTxt

Exit sub [txt-color=#007100][ô]aqui você sai da rotina caso ocorra tudo certo[/txt-color]

TrataErro:
If Err.Number = -2147012889 or Err.Number = 55 Then
WinHttpReq.send
Debug.Print WinHttpReq.Status & [Ô] - [Ô] & WinHttpReq.StatusText [ô]200 means success

Open [Ô]S1.jpg[Ô] For Binary As #1 [ô]Só que quando o router ta ligado e sem internet ele da erro aqui tb ai que nao consigo tratar o erro denovo!
d() = WinHttpReq.responseBody
Put #1, 1, d()
Close

Image1.Picture = LoadPicture([Ô]S1.jpg[Ô])
Set WinHttpReq = Nothing

Image1.Width = Me.ScaleWidth
Image1.Height = Me.ScaleHeight
End If
SOUZA 09/07/2014 19:53:14
#439434
Valeu Marcelo...
Tópico encerrado , respostas não são mais permitidas