Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1792to1796
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA - Internet Error umgehen

VBA - Internet Error umgehen
10.11.2020 00:03:30
Julian
Hallo zusammen,
zum Sammeln von Daten läuft ein alter PC von mir tagsüber im Keller. Da ich auf dem Land jedoch ab und zu mal Aussetzer mit dem Internet habe, fällt das VBA Programm bei Aussetzern nach kurzer Zeit vollständig aus - da ich das nicht sofort merke ist das blöd, vor allem, da der Datensatz nach 10 min Unterbrechung unbrauchbar wird.
Ich wollte schonmal fuchsig, wie ich bin versuchen mir dann eine Telegram Nachricht ans Handy senden zu lassen (hat mit dem Telegram Bot auch super funktioniert)´- ich hatte jedoch nicht bedacht, dass das Absenden der Nachricht auch eine Internetverbindung erfordert.
Lange Rede kurzer Sinn: Ich suche eine Möglichkeit, wie das Programm so lange on hold ist, bis wieder eine Internetverbindung besteht. Es geht um folgende Befehle:
Set HttpReq = CreateObject("MSXML2.XMLHTTP")
HttpReq.Open "GET", URL, False
HttpReq.send
XmlHttpRequest = HttpReq.responseText
bBackground = objConnection.OLEDBConnection.BackgroundQuery
objConnection.OLEDBConnection.BackgroundQuery = False
objConnection.Refresh
objConnection.OLEDBConnection.BackgroundQuery = bBackground
Ich habe mal was mit on Error Resume versucht, doch das hat nicht wie gewollt funktioniert.
Habt ihr da eine Lösung?

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Internet Error umgehen
10.11.2020 01:34:08
Martin
Hallo Julian,
wenn tatsächlich das Makro mit einer Fehlermeldung unterbrochen wird, dann war dein Ansatz mit der On Error Resume Next-Anweisung theoretisch richtig.
Ich hätte es wahrscheinlich so versucht:
Sub Beispiel()
Dim HttpReq As Object
Dim objConnection As Object
Set HttpReq = CreateObject("MSXML2.XMLHTTP")
On Error Resume Next
Do
Err.Number = 0
With HttpReq
.Open "GET", URL, False
.Send
XmlHttpRequest = .responseText
End With
With objConnection
bBackground = .OLEDBConnection.BackgroundQuery
.OLEDBConnection.BackgroundQuery = False
.Refresh
.OLEDBConnection.BackgroundQuery = bBackground
End With
Loop Until Err.Number = 0
On Error GoTo 0
End Sub
Viele Grüße
Martin
Anzeige
...Ergänzung
10.11.2020 01:53:26
Martin
Hallo Julian,
wenn aber kein Makrofehler ausgelöst wird, sondern der Variable XmlHttpRequest ein Fehlerwert in Textform zugewiesen wird, dann musst du in der Loop-Anweisung statt des Error-Fehlercodes den Inhalt der XmlHttpRequest-Variable auswerten.
Entweder direkt mit dem Fehler-Rückgabewert, wenn dieser immer identisch ist:
Loop Until XmlHttpRequest  "[Fehler-Rückgabewert]"
oder wenn der Rückgabewert zum Beispiel über 100 Zeichen enthalten muss:
Loop Until Len(XmlHttpRequest) > 100
Viele Grüße
Martin
Anzeige
AW: VBA - Internet Error umgehen
10.11.2020 08:47:22
volti
Hallo Julian,
vielleicht kannst Du in diesem Zusammenhang auch etwas mit dieser Prüfroutine anfangen.
(Für VBA6 bitte den PtrSafe rausnehmen.)
Code:
[Cc]

Declare PtrSafe Function InternetGetConnectedStateEx Lib "wininet.dll" ( _ ByRef lpdwFlags As Long, ByVal lpszConnectionName As String, _ ByVal dwNameLen As Long, ByVal dwReserved As Long) As Long Function IsOnline() As Boolean 'Stellt fest, ob man online ist Dim sConnType As String * 255, l As Long If InternetGetConnectedStateEx(l, sConnType, 254, 0) = 1 Then IsOnline = True End Function

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: VBA - Internet Error umgehen
10.11.2020 21:15:16
Julian
Auf jeden Fall ein Dickes Lob an alle, die Ideen eingebracht haben und vor allem an dich Karl-Heinz.
Mit Schwarmintelligenz ist man halt meist schlauer.
Ich habe auch schonmal daran gedacht einen ConnectionCheck durchzuführen, doch mein Skript dazu war relativ langsam und hätte bei der Anzahl der Anfragen die Laufzeit verlängert/ die Anzahl der gesammelten Daten verringert - jetzt habe ich nicht nur eine Problemlösung, sondern auch noch ein schnelleres ConnectionCheck-Skript.
Ihr seid klasse, vielen Dank
Und noch einen schönen Abend euch allen :)
AW: VBA - Internet Error umgehen
11.11.2020 02:13:10
Martin
Hallo Julian,
eine instabile Internetverbindung bedeutet nicht unbedingt, dass dein Rechner bei Übertragungsproblemen offline ist. Bei einer Zeitüberschreitung einer Datenabfrage/-übertragung (TimeOut) wird die Datenübertragung trotz bestehender Internetverbindung abgebrochen.
Viele Grüße
Martin
Anzeige

24 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige