Hallo VBA Gemeinde,
ich habe mir in Access eine Public Function geschrieben, die den Inhalt einer beliebigen Webseite in der Funktion speichert. Soweit klappt auch alles, was ich damit vorhabe. :-)
Trotz meiner Meinung nach korrekten Programmierung (Beenden IE Instanz, Zerstören der Objekt-Variablen bleibt oftmal der Task vom IE im Taks-Manager weiter am Laufen. Da diese Funktion alle 5 Minuten aufgerufen wird, ist es nur eine Frage der Zeit, bis das System komplett in die Knie geht. :-(
Wer findet den Fehler? Ich suche mir hier schon seit Tagen den Wolf und krieg es einfach nicht raus.
Besten Dank für eure Unterstützung und viele Grüße
Stefan
Hier der Funktions-Code (und wie ihr seht, eigentlich nix kompliziertes):
Public Function WebSiteContent(URL As String)
On Error GoTo Fehler
Dim Response As Variant 'Variable für Inhalt einer beliebigen Webseite als Text
Dim WebBrowser As Object 'Variable für Steuerung IE
' IE Instanz erstellen
Set WebBrowser = CreateObject("InternetExplorer.Application")
' Navigiere zu Webseite (URL)
WebBrowser.Navigate URL
' Warten, bis die Seite geladen ist
Do While WebBrowser.Busy
DoEvents
Loop
' Hole den Inhalt der Website und weise diesen der Funktion als Variablen für weitere Bearbeitung in anderen Modulen zu.
Response = WebBrowser.Document.Body.InnerHtml
WebSiteContent = Response
' Ressourcen freigeben
WebBrowser.Quit
Set WebBrowser = Nothing
DoCmd.Quit 'Den hab ich mal zum Testen eingebaut, funzt aber och net... :-(
Exit Function
'FehlerRoutine
Fehler:
MsgBox Err.Number & " " & Err.Description
If IsNull(Nz(WebSiteContent)) = True Or WebSiteContent = "" Then
WebBrowser.Quit
Set WebBrowser = Nothing
DoCmd.Quit
WebSiteContent (URL)
End If
End Function
|