Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Achtung: Dies ist nicht der vollständige Artikel, sondern nur ein paar Seiten davon. Wenn Sie hier nicht erfahren, was Sie wissen möchten, finden Sie am Ende Informationen darüber, wie Sie den ganzen Artikel lesen können.

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 2/2011.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

Zusammenfassung

Lernen Sie die Möglichkeiten des Webbrowser-Steuerelements kennen, das seit Version 2010 fester Bestandteil von Access ist.

Techniken

Webbrowser-Steuerelement

Voraussetzungen

Access 2010 und höher, teilweise auch Access 2000 und höher

Beispieldateien

Webbrowser.mdb

Shortlink

www.access-im-unternehmen.de/768

Access 2010: Das Webbrowser-Steuerelement

André Minhorst, Duisburg

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?

Die Lösung ist einfach: Der Parameter pDisp entspricht jeweils einem Zeiger auf das IDispatch-Interface des Fensters oder Frames, in dem sich die geladene Seite befindet.

Sie haben das Ende des frei verfügbaren Teils des Artikels erreicht. Lesen Sie weiter, um zu erfahren, wie Sie den vollständigen Artikel lesen und auf viele hundert weitere Artikel zugreifen können.

Sind Sie Abonnent?Jetzt einloggen ...
 

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

© 2003-2015 André Minhorst Alle Rechte vorbehalten.