Access 2010: Das Webbrowser-Steuerelement

Mit Access 2010 baut Microsoft das Webbrowser-Steuerelement direkt in Access ein und vereinfacht damit einiges gegenüber der Verwendung des entsprechenden ActiveX-Steuerelements. Dieser Beitrag stellt die Möglichkeiten dieses neuen Steuerelements vor und zeigt die Unterschiede zum bisher verwendeten ActiveX-Steuerelement auf.

Das Webbrowser-Steuerelement finden Sie nun neben den übrigen Steuerelementen im Ribbon unter Entwurf|Steuerelemente (s. Abb. 1).

pic001.png

Abb. 1: Einfügen des Webbrowser-Steuerelements

Nach dem Einfügen und dem Wechsel in die Formularansicht zeigt das Steuerelement erwartungsgemäß noch keine Internetseite, sondern eine entsprechende Fehlermeldung an (s. Abb. 2). Aber woher sollte es auch wissen, welche Internetadresse es anzeigen soll

pic002.png

Abb. 2: Das Steuerelement in der Formularansicht – noch ohne Füllung

Nun, das lässt sich ändern: Wir fügen einfach eine Tabelle namens tblWebseiten zur Datenbank hinzu, die lediglich die beiden Felder WebseiteID und Webseite enthält.

Tragen Sie einige Datensätze mit gültigen Internetadressen in diese Tabelle ein. Stellen Sie dann die Eigenschaft Datenherkunft des Formulars mit dem Webbrowser-Steuerelement auf diese Tabelle ein und weisen Sie der Eigenschaft Steuerelementinhalt des Webbrowser-Steuerelements den Namen des Tabellenfeldes Webseite zu.

Wie Abb. 3 zeigt, liefert das Webbrowser-Steuerelement nun die gewünschten Webinhalte. Und das ist die erste tolle Neuerung des in Access integrierten Webbrowser-Steuerelements: Es lässt sich an ein Feld einer Datenherkunft binden. Das heißt, Sie können in einem Formular immer gleich die Internetseite zu einem in einem Feld gespeicherten Link anzeigen. Dieses Formular finden Sie in der Beispieldatenbank unter dem Namen frmWebbrowser_Gebunden.

pic005.png

Abb. 4: Webbrowser-Steuerelement mit ungebundenem Textfeld zur Adresseingabe

Ungebundene Anzeige von Webseiten

Wenn Sie die Webseite ändern möchten, ohne das Webbrowser-Steuerelement an ein Feld einer Tabelle zu binden, sind ein paar zusätzliche Handgriffe nötig. In der Beispieldatenbank finden Sie ein fertiges Formular mit den folgenden Funktionen unter dem Namen frmWebbrowser_Ungebunden (s. Abb. 4). Das Formular besitzt keine Datenherkunft und das Webbrowser-Steuerelement ist dementsprechend nicht an ein Feld gebunden.

pic003.png

Abb. 3: Ein an ein Feld der Datenherkunft gebundenes Webbrowser-Steuerelement

Damit es trotzdem eine Internetseite anzeigt, würden wir seine Eigenschaft Value nun im ersten Anlauf mit der gewünschten Internetadresse füttern. Die folgende Anweisung schlägt jedoch fehl:

Forms!frmWebbrowser_Ungebunden.ctlWebbrowser.Value = "http://www.access-im-unternehmen.de"

Stattdessen müssen wir wie beim alten Webbrowser-ActiveX-Steuerelement vorgehen und zunächst eine Objektvariable mit dem Datentyp Webbrowser deklarieren:

Dim objWebbrowser As WebBrowser

Im Formularereignis Beim Laden weisen wir diesem Objekt einen Verweis auf die Object-Eigenschaft des Webbrowser-Steuerelements zu:

Private Sub Form_Load()
    Set objWebbrowser = Me!ctlWebbrowser.Object
End Sub

Schließlich soll dieses eine Internetseite anzeigen. Dazu legen wir im Formular ein Textfeld namens txtWebseite und für dieses eine Prozedur für die Ereigniseigenschaft Nach Aktualisierung an:

Private Sub txtWebseite_AfterUpdate()
    objWebbrowser.Navigate2 Me!txtWebseite.Value
End Sub

Wenn Sie nun in die Formularansicht wechseln, eine Internetseite in das Textfeld eintragen und die Eingabetaste betätigen, lädt das Webbrowser-Steuerelement die Internetseite ohne Probleme.

Nach diesem kleinen Ausflug begeben wir uns zurück zu den Möglichkeiten des reinen Access-Steuerelements – die Navigate2-Methode war jedoch wichtig, weil sonst kein Laden von Seiten ohne URL in einem gebundenen Feld möglich ist.

Fertig

Beim automatischen Laden von Internetseiten interessiert uns in vielen Fällen der Zeitpunkt, wann das Webbrowser-Steuerelement die Seite fertig geladen hat. Dies können wir wie früher mit dem soeben deklarierten Objekt objWebbrowser erledigen, wobei wir dessen Deklaration um das Schlüsselwort WithEvents erweitern müssen:

Dim WithEvents objWebbrowser As WebBrowser

Danach können Sie über die beiden Kombinationsfelder oben im Klassenmodul des Formulars zuerst das Objekt objWebbrowser und dann das Ereignis NavigateComplete2 auswählen. Der VBA-Editor legt dann automatisch eine Ereignisprozedur an, die wie folgt aussieht:

Private Sub ctlWebbrowser_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    MsgBox "Seite ''" & URL & "'' vollständig geladen"
End Sub

Dies hat früher gereicht, um das vollständige Laden der angegebenen Seite zu registrieren. In Zeiten des Web 2.0 gelingt dies nicht mehr: Wenn Sie beispielsweise www.amazon.de aufrufen, werden gleich noch eine Reihe Frames geladen – und die lösen fast alle das Ereignis DocumentComplete aus. Welches also signalisiert mir, dass die eigentliche Seite geladen ist

Sie haben das Ende des frei verfügbaren Textes erreicht. Möchten Sie ...

Workplace

Jahresabonnement TestzugangOder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar