Hallo Access -Fans,
meine Pilzkartierungsprogramm lädt beim Programmstart mit einem VBA Code eine kleine Datei von meiner Homepage, um zu vergleichen, ob die neueste Version vorhanden ist.
Nun kommt es vor, dass durch gestörtem Internetzugang dieser Download nicht möglich ist. Der Programmstart dauert dann in diesen zwar eher seltenen Fall ewig und Access zeigt natürlich dann "keine Rückmeldung" an. Läßt sich diese lange "Suche nach dem Internet" mit einem VBA-Code unterbrechen, damit das Programm trotzdem normal gestartet wird.
Beste Grüße
Frank
Was heißt denn "Internetverbindung gestört"? Nicht mit dem Internet verbunden oder sehr langsame Übertragungsraten?
Bin nämlich gerade wegen einer anderen Sache drüber gestolpert. Ob eine Verbindung existiert oder nicht kann angeblich mit folgendem Code geprüft werden:
Private Declare Function InternetGetConnectedState Lib "wininet.dll" (ByRef lpdwFlags As Long, ByVal dwReserved As Long) As Long
Function Verbindung_zum_Internet() As Boolean
'Diese Funktion prüft ob eine Verbindung zum Internet besteht.
If InternetGetConnectedState(l_dwflags, 0&) Then
Verbindung_zum_Internet = True
Else
Verbindung_zum_Internet = False
End If
End Function
Quelle: http://www.ms-office-forum.net/forum/showthread.php?s=&threadid=114655 (http://www.ms-office-forum.net/forum/showthread.php?s=&threadid=114655)
Hab ich allerdings nicht getestet...
Hallo datekk,
vielen Dank für deine Antwort und den Code, der prinzipiell funktioniert.
Die Zeile "Verbindung_zum_Internet = False" läßt sich allerdings nicht so einbauen, dass die ewig lange Suche vermieden wird.
Mit Internet gestört, meine ich eine vorübergehende Unterbrechung bzw. eine sehr schwache Wlan-Verbindung.
LG
Frank
Hallo,
das dürfte eher an Windows denn an Access "hängen"....
Vielleicht bringt dies weiter:
http://www.winfaq.de/faq_html/Content/tip1500/onlinefaq.php?h=tip1613.htm
Hallo Franz,
interessant, dass man da in der Registry was verändern kann. Meine Datei wird mit folgenden Code downloadet.
Public Function FileDownload(ByVal sURL As String, _
ByVal sLocalFile As String, _
Optional ByVal bClearCache As Boolean = True) As Boolean
Dim lResult As Long
' URL-Cache leeren?
If bClearCache Then
lResult = DeleteUrlCacheEntry(sURL)
End If
' Download ausführen
'Screen.MousePointer = vbHourglass
lResult = URLDownloadToFile(0, sURL, sLocalFile, 0, 0)
'Screen.MousePointer = vbNormal
FileDownload = (lResult = 0)
End Function
KeepAliveTimeout bringt da nicht viel. Wie könnte ich eventuell noch die Funktion "Function FileDownload" bei unterbrochenen Internetzugriff abbrechen?
LG
Frank
Hallo,
vermutlich ist das hier das falsche Forum für solche Windows-Internas....
Ich müsste auch erst genauer recherchieren...
Hallo Franz,
Danke, da werde ich mal mit Windows-Experten kurzschließen.
LG
Frank
Hallo datekk,
habe deinen VBA-Code nochmal getestet. Er erkennt nur, ob eine Internetverbindung eingerichtet ist, nicht ob Connection besteht.
LG
Frank