Home > Artikel > Ausgabe 1/2018 > Das Webbrowser-Steuerelement

Das Webbrowser-Steuerelement

Achtung: Sie sind nicht angemeldet. Wenn Sie Abonnent sind und sich anmelden, lesen Sie den kompletten Artikel, laden das PDF herunter oder probieren die Beispieldatenbank aus (sofern vorhanden).

Neben den vielen einfachen Steuer­element, die in Access verfügbar sind, findet sich auch eines, mit dem Sie die Inhalte von Internetseiten in Access-Formularen anzeigen können: das Webbrowser-Steuerelement. Dieses Steuer­element ist bis Access 2007 noch kein fester Bestandteil von Access gewesen und musste als ActiveX-Steuerelement nachgerüstet werden. Seit Access 2010 jedoch können Sie mit dem eingebauten Steuer­element arbeiten und können den einen oder anderen Vorteil nutzen – unter anderem die Möglichkeit, das Steuer­element an ein Feld als Datenquelle zu binden.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1801_WebbrowserSteuerelement.accdb.

Webbrowser-Steuerelement hinzufügen

Wenn Sie ein Formular mit dem Webbrowser-Steuerelement ausstatten wollen, wählen Sie in der Entwurfsansicht des Formulars im Ribbon den Eintrag Entwurf|Steuerelemente|Webbrowsersteuerelement aus (siehe Bild 1).

Auswahl des Webbrowser-Steuerelements über das Ribbon

Bild 1: Auswahl des Webbrowser-Steuerelements über das Ribbon

Klicken Sie auf diesen Eintrag, können Sie wie in Bild 2 einen Rahmen aufziehen, der die Größe des einzufügenden Webbrowser-Steuerelements markiert. Anschließend erscheint das Steuer­element als rechteckiger Rahmen mit dem Text Ungebunden als einzigem Inhalt.

Einfügen des Webbrowser-Steuerelements

Bild 2: Einfügen des Webbrowser-Steuerelements

Eigenschaften des Webbrowser-Steuerelements

Schauen wir uns die Eigenschaften des neuen Steuerelements im Eigenschafts-Fenster an, finden wir keine besonderen neuen Eigenschaften, durch die sich das Steuer­element von anderen Steuerelementen wie etwa dem Textfeld abheben würde – allein die Seite mit den Ereigniseigenschaften liefert ein paar unbekannte Einträge (siehe Bild 3). Dazu gehören etwa die Eigenschaften Bei Vor Navigieren, Bei Dokument vollständig, Bei Navigationsfehler oder Bei Fortschrittsänderung. Auf der Registerseite Daten finden Sie die übliche Eigenschaft Steuerelementinhalt sowie die allein dem Webbrowser-Steuerelement vorbehaltene Eigenschaft Transformation. Auf der Seite Format fallen uns die beiden Eigenschaften Bildlauf zum Anfang durchführen und Bildlauf nach links durchführen auf – wir schauen uns gleich an, ob diese speziell für das Webbrowser-Steuerelement gedacht sind.

Ereigniseigenschaften des Steuerelements

Bild 3: Ereigniseigenschaften des Steuerelements

Eine Eigenschaft, die wir auf jeden Fall zu Beginn festlegen, heißt Name und nimmt den Wert ctlWeb­browser an.

VBA-Befehle des Webbrowser-Steuerelements

Fügen wir nun dem Formular ein Klassenmodul hinzu und legen die Ereignisprozedur Beim Laden für das Formular selbst an. Dann können wir über die Eingabe von Me!ctlWebbrowser und anschließendem Betätigen der Punkt-Taste per IntelliSense die vorhandenen Elemente für das Webbrowser-Steuerelement ansehen.

Noch einfacher gelingt das natürlich über den Objektkatalog, der wie in Bild 4 nach der Eingabe des Suchbegriffs WebbrowserControl die Eigenschaften, Methoden und Ereignisse dieses Steuerelements anzeigt. Hier finden wir die folgenden für das Webbrowser-Steuerelement spezifischen Elemente:

Objektkatalog mit den Elementen des Webbrowser-Steuerelements

Bild 4: Objektkatalog mit den Elementen des Webbrowser-Steuerelements

  • BeforeNavigate2: Ereignis, das vor dem Laden der Seite ausgelöst wird. Dieses Ereignis und somit das Laden der Internetseite kann durch Setzen des Parameters Cancel auf den Wert True abgebrochen werden.
  • DocumentComplete: Ereignis, das beim vollständigen Laden der Seite ausgelöst wird.
  • LocationURL: Eigenschaft
  • NavigateError: Ereignis, das beim Auftreten eines Fehlers ausgelöst wird.
  • OnBeforeNavigate: Ereigniseigenschaft
  • OnDocumentComplete: Ereigniseigenschaft
  • OnNavigateError: Ereigniseigenschaft
  • OnProgressChange: Ereigniseigenschaft
  • ProgressChange: Ereignis, das beim Ändern des Fortschritts ausgelöst wird.
  • ReadyState: Eigenschaft

Ereignisse erforschen

Um die Ereigniseigenschaften des Webbrowser-Steuerelements zu erforschen, legen wir diese einfach alle einmal an und fügen zunächst jeweils eine Debug.Print-Anweisung hinzu, welche den Namen des Ereignisses ausgibt (siehe Listing 1).

Private Sub ctlWebbrowser_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, flags As Variant, TargetFrameName As Variant, _

         PostData As Variant, Headers As Variant, Cancel As Boolean)

     Debug.Print "BeforeNavigate2"

End Sub

Private Sub ctlWebbrowser_DocumentComplete(ByVal pDisp As Object, URL As Variant)

     Debug.Print "DocumentComplete"

End Sub

Private Sub ctlWebbrowser_NavigateError(ByVal pDisp As Object, URL As Variant, TargetFrameName As Variant, _

         StatusCode As Variant, Cancel As Boolean)

     Debug.Print "NavigateError"

End Sub

Private Sub ctlWebbrowser_ProgressChange(ByVal Progress As Long, ByVal ProgressMax As Long)

     Debug.Print "ProgressChange"

End Sub

Listing 1: Ereignisse des Webbrowser-Steuerelements

Erster Aufruf

Wenn wir nun von der Entwurfsansicht in die Formularansicht des Formulars wechselt, lädt das Web­browser-Steuerelement natürlich noch keine Internetseite, da wir ihm ja nirgends mitgeteilt haben, welche Internetseite angezeigt werden soll (siehe Bild 5).

Beim ersten Öffnen zeigt das Webbrowser-Steuer­element logischerweise noch keine Seite an.

Bild 5: Beim ersten Öffnen zeigt das Webbrowser-Steuer­element logischerweise noch keine Seite an.

Wenn wir nun allerdings in den Direktbereich des VBA-Editors blicken, finden wir heraus, dass sich doch eine ganze Menge getan hat. Hier ist die Ausgabe im Direktbereich:

BeforeNavigate2

ProgressChange

ProgressChange

DocumentComplete

BeforeNavigate2

BeforeNavigate2

ProgressChange

ProgressChange

DocumentComplete

Mit diesen Ereignissen können Sie verschiedene Vorgänge steuern – zum Beispiel können Sie beim Auslösen des Ereignisses DocumentComplete bestimmte Steuer­elemente aktivieren, die Sie für den Zugriff auf Elemente der Seite nutzen wollen.

Die Ereignisprozeduren liefern, wie Sie oben im Listing sehen, verschiedene Parameter. Der Parameter URL liefert jeweils die geladene Internetadresse. Das Ereignis ProgressChange liefert zwei Parameter.

Sie haben das Ende des frei verfügbaren Teil dieses Artikels erreicht!

Wenn Sie mehr lesen und auf viele weitere Artikel zugreifen möchten, melden Sie sich als Abonnent unter Login an. Falls nicht, bestellen Sie doch einfach ein Jahresabonnement!