Internetbrowser mit Bookmarkverwaltung

Autor: André Minhorst, Duisburg

Das Internet ist ein ständig größer und komplexer werdendes Medium. Jeden Tag kommen neue Angebote hinzu und alte Seiten verschwinden aus dem World Wide Web. Hier ist es schwierig, den überblick zu behalten – zumindest mit herkömmlichen Mitteln. Der vorliegende Workshop beschäftigt sich mit dem Webbrowser-Steuerelement von Microsoft und den Möglichkeiten, die Access zum Verwalten der Lesezeichen zu Ihren Lieblings-websites bietet.

Der Microsoft Internet Explorer ist derzeit das am weitesten verbreitete Tool zur Anzeige von Internetseiten. Er bietet alle erforderlichen Funktionen, um bequem durch das Internet zu navigieren.

Wenn der Anwender eine Seite findet, die er gerne später noch einmal aufrufen möchte, kann er die Adresse der Seite einfach in einem Ordner namens Favoriten speichern. Bei dem Ordner handelt es sich prinzipiell um einen herkömmlichen Ordner, der Verknüpfungen zu verschiedenen Objekten speichert. Zu den Objekten gehören neben Anwendungen, Dokumenten und Verzeichnissen auch Internetadressen.

Leider können Sie in dem Ordner aber nur die gewünschte Adresse und einen geeigneten Namen speichern. Schon wenn Sie sich beispielsweise ein paar Notizen zu den unterschiedlichen Internetangeboten machen möchten, müssen Sie zu Bleistift und Notizblock greifen.

Zusätzlich speichert der Internet Explorer noch einige weitere Informationen. Dabei handelt es sich z. B. um die zuletzt aufgerufenen Internetadressen der aktuellen Sitzung für die aktive Instanz des Internet Explorers. Sie können auf die Liste dieser Seiten zugreifen, indem Sie auf die kleine Schaltfläche mit dem Pfeil nach unten klicken, die sich rechts neben der Zurück-Schaltfläche befindet.

Außerdem können Sie auf eine Liste häufig geladener Seiten zugreifen, indem Sie das Kombinationsfeld mit der aktuellen Adresse öffnen.

Access eignet sich prinzipiell zur Verwaltung aller nur denkbaren Daten – sofern sie sich in digitaler Form befinden. Daher ist auch die Verwaltung der Lesezeichen und der aufgerufen Internetseiten grundsätzlich möglich.

Wenn Sie eine Tabelle mit Lesezeichen anlegen, ist es auch kein Problem, die Lesezeichen zu kategorisieren oder Kommentare zu den dahinter steckenden Internetseiten abzuspeichern. Damit hätten Sie den Favoriten des Internet Explorers schon einiges voraus.

Das einzige Problem ist nun: Wie bekommen Sie die Adressen der aufgerufenen Seiten in Ihre Datenbank

Die Antwort ist ganz einfach: Basteln Sie sich einfach Ihren eigenen Browser. Voraussetzung dafür ist, dass sich das Webbrowser-Steuerelement auf Ihrem Rechner befindet. Das Webbrowser-Steuerelement ist auf jeden Fall installiert, wenn Sie mit dem Microsoft Internet Explorer arbeiten.

Falls Sie nicht mit dem Internet Explorer arbeiten, können Sie sich die benötigten Dateien von der Internetseite http://www.microsoft.de/ herunterladen. (Microsoft erlaubt uns leider nicht, diese Dateien auf die CD zu nehmen.) Nach der Installation des Internet Explorers ist das ActiveX-Control Webbrowser-Steuerelement automatisch verfügbar.

Im diesem Kapitel lernen Sie zunächst das Webbrowser-Control und seine Funktionen kennen.

Im folgenden Kapitel kommt dann Access zur Geltung: Sie erfahren dort, wie Sie der zum Internetbrowser umfunktionierten Datenbank eine komfortable Lesezeichen- und Historieverwaltung hinzufügen.

Vorbereitungen

Bevor Sie sich auf das Webbrowser-Control stürzen, sollten Sie zunächst einmal eine neue Datenbank anlegen. Anschließend erstellen Sie direkt ein neues Formular, speichern es unter dem Namen frmInternetBrowser, und öffnen es in der Entwurfsansicht.

Einfügen desWebbrowser-Steuerelements

Nun können Sie bereits das entsprechende ActiveX-Control in das Formular einfügen. Dazu gibt es zwei Möglichkeiten. Als erste Möglichkeit klicken Sie mit der Maus auf das Symbol Weitere Steuerelemente unten rechts in der Toolbox. Daraufhin erscheint eine Liste aller verfügbaren zusätzlichen Steuerelemente (siehe Bild 1).

Bild 1: Auswahl des Webbrowser-Steuerelements

Mit den beiden Pfeil-Symbolen können Sie nach unten und oben scrollen. Mit wachsender Anzahl installierter Anwendungen kann auch die Anzahl der verfügbaren Steuerelemente rapide zunehmen, sodass Sie schon eine Weile brauchen, bis Sie das gewünschte Steuerelement gefunden haben.

Wenn es dann soweit ist, können Sie es mit einem einfachen Mausklick auswählen und anschließend ein Rechteck in dem Formular aufziehen, um das Steuerelement einzufügen (siehe Bild 2).

Geben Sie sich nicht so viel Mühe beim Anpassen der Größe – beim ersten Versuch erstellt Access das Objekt ohnehin in der Standardgröße.

Die zweite Möglichkeit ist der Aufruf des Dialogs ActiveX-Steuerelement einfügen über den Menübefehl Einfügen ( ActiveX-Steuerelement … (siehe Bild 3).

Hier können Sie mit Hilfe der Bildlaufleisten wesentlich schneller als mit der ersten Möglichkeit zum gewünschten Steuerelement gelangen.

Nachdem Sie das Steuerelement auf dieses Weise angelegt haben, ändern Sie zunächst einmal seinen Namen. Im Register Andere des Eigenschaftsfenster finden Sie den entsprechenden Eintrag. Weisen Sie ihm den Wert ctlInternetBrowser zu.

Anzeigen einer Seite im Webbrowser-Control

Sicher möchten Sie nun so schnell wie möglich Ergebnisse sehen. Damit das Browserfenster direkt beim öffnen eine Seite anzeigt, müssen Sie eine Prozedur für die Ereigniseigenschaft Beim Klicken hinterlegen.

Aktivieren Sie also das Formular, indem Sie auf den Schnittpunkt der beiden Lineale klicken und aktivieren Sie das Eigenschaftsfenster.

Im Register Daten klicken Sie auf die Eigenschaft Beim Anzeigen. Daraufhin erscheint eine Schaltfläche mit drei Punkten […]. Mit einem Klick auf die Schaltfläche öffnen Sie den Dialog Editor auswählen. Wählen Sie hier den Eintrag Code-Editor aus.

Sie können nun im Codefenster zwischen die beiden Zeilen Private… und End… die folgende Anweisung einfügen:

Me!ctlInternetBrowser.GoHome

Zusätzlich führen Sie bitte noch den folgenden Schritt durch:

Wählen Sie – während das Codefenster geöffnet ist – den Menübefehl Extras ( Verweise… aus. Hier müssen Sie den Eintrag Microsoft Internet Controls aktivieren (siehe Bild 4). Haken Sie bei dieser Gelegenheit auch direkt den Eintrag Microsoft HTML Object Library mit ab.

Nachdem Sie das Codefenster geschlossen haben, können Sie nun in die Formularansicht wechseln. Wenn Sie mit Access 97 arbeiten, stellt sich das gewünschte Ergebnis – die Anzeige einer Internetseite – möglicherweise nicht ein. Stattdessen erscheint eine Fehlermeldung (siehe Bild 5), gefolgt von einer zweiten (siehe Bild 6).

Bild 5: Der ersten Fehlermeldung…

Bild 6: …folgt die zweite auf den Fuß.

Der Grund liegt darin, dass Access 97 auf die Anwendung einer bestimmten Version der Bibliothek Shdocvw.dll ausgelegt ist und nicht mit einer aktuelleren Version zusammenarbeiten möchte. Gehen Sie in dem Fall folgendermaßen vor:

  • Wechseln Sie wieder in die Entwurfsansicht.
  • ändern Sie die Größe des Webbrowser-Steuerelements.
  • Schneiden Sie das Steuerelement aus.
  • Fügen Sie das Steuerelement wieder in das Formular ein.
  • Nach der Durchführung der Schritte können Sie ohne Probleme in die Formularansicht wechseln. Das Webbrowser-Steuerelement zeigt nun die gewünschte Internetseite an.

    Sie müssen sich mit noch einem weiteren Bug anfreunden, der für Access 97 und ebenso für Access 2000 gilt: Wenn Sie die Größe des Webbrowser-Steuerelements ändern, erscheint in der Entwurfsansicht zunächst die korrekte Größe. Wechseln Sie aber in die Formularansicht, erscheint das Steuerelement in der voreingestellten Größe.

    Dagegen gibt es nur ein wirksames Mittel:

  • Merken Sie sich eventuell bereits vorgenommene änderungen an den Eigenschaften des Steuerelements.
  • Löschen Sie das Steuerelement.
  • Fügen Sie ein neues Steuerelement ein.
  • Passen Sie die Größe an, bevor Sie erneut in die Formularansicht wechseln.
  • Diese Prozedur müssen Sie leider bei jeder änderung des Steuerelements durchführen. Also, um sicherzugehen:
  • Steuerelement einfügen, Größe anpassen, Steuerelement ausschneiden, Steuerelement wieder einfügen – Fertig! Nun können Sie die gewünschte Seite endlich im Formular anzeigen (siehe Bild 7).
  • Private Sub cmbURL_AfterUpdate()
        On Error Resume Next
        If Len(Me.cmbURL) > 0 Then
            Me!ctlInternetBrowser.Navigate Me.cmbURL
        End If
    End Sub
  • Sie sparen sich eine Menge Arbeit, wenn Sie sich über die gewünschte Größe vor der Erstellung des Steuerelements im Klaren sind.
  • Günstig ist es, wenn Sie über einen relativ großen Monitor verfügen und das Steuerelement auf eine Größe von etwa 800 x 600 Punkten bringen. So können Sie die meisten herkömmlichen Seiten übersichtlich anzeigen.
  • Internetbrowser mit Funktionen versehen

    Nun können Sie den Browser mit den wichtigsten Funktionen ausrüsten, z. B. Navigationsschaltflächen, einem Kombinationsfeld für die gewünschte Adresse usw.

    Einfügen von Navigationsschaltflächen

    Fügen Sie zunächst einige Schaltflächen in das Formular ein. Sie benötigen je eine Schaltfläche zur Anzeige der vorherigen und der nächsten Seite, zum Aktualisieren der aktuellen Seite, zum Anhalten des Ladevorgangs und zum Anzeigen einer voreingestellten Startseite.

    Kombinationsfeld zur Eingabe von Internetadressen

    Außerdem benötigen Sie ein Kombinationsfeld, in dem der Anwender die gewünschte Seite eingeben kann.

    Nachdem Sie das Kombinationsfeld erstellt haben, ändern Sie seinen Namen auf cmbURL. Damit Sie es direkt ausprobieren können, legen Sie für die Ereigniseigenschaft Nach Aktualisierung Prozedur aus Quellcode 1 an.

    Die Prozedur fragt ab, ob das Kombinationsfeld nicht leer ist und lädt anschließend das Dokument von der angegebenen Adresse.

    Durch die History blättern

    Nun kümmern Sie sich um die History: Schließlich möchten Sie hin und wieder mal zu einer vorherigen Seite und auch wieder zurück springen.

    Dazu erstellen Sie zwei Schaltflächen, die Sie wahlweise mit dem Kleiner- [<] und dem Größer-Zeichen [>] oder einem aussagekräftigen Text ausstatten können. Geben Sie den beiden Schaltflächen in jedem Fall die Bezeichnungen btnBack und btnForward.

    Nun müssen Sie noch die beiden Schaltflächen mit ein wenig Code versehen. Hinterlegen Sie für die Ereigniseigenschaft Beim Klicken der Schaltfläche btnBack die folgende Prozedur:

    Private Sub ctlInternetBrowser_TitleChange (ByVal Text As String)
        Forms!frmInternetBrowser.Caption = Text
    Private Sub ctlInternetBrowser_DocumentComplete (ByVal pDisp As Object, _    URL As Variant)
        Me!cmbURL = Me!ctlInternetBrowser.LocationURL
    Private Sub btnBack_Click()
        On Error Resume Next
        Me!ctlInternetBrowser.GoBack
    End Sub

    Ebenso gehen Sie mit der Schaltfläche btnForward vor. Hier verwenden Sie die folgende Prozedur:

    Private Sub btnForward_Click()
        On Error Resume Next
        Me!ctlInternetBrowser.GoForward
    End Sub

    Anzeige des Seitentitels in der Formulartitelzeile

    Die Titelzeile des Formulars soll den Titel der aktuellen Seite anzeigen – sofern die Seite einen Titel hat. Dazu müssen Sie eine Ereigniseigenschaft für das Webbrowser-Steuerelement programmieren.

    Dabei gibt es einen kleinen Unterschied zu herkömmlichen Steuerelementen: Wenn Sie mit einem ActiveX-Steuerelement arbeiten, können Sie unter Umständen nicht alle Ereigniseigenschaften des Steuerelements über das Eigenschaftsfenster einsehen. Sie müssen stattdessen zunächst das Code-Fenster öffnen.

    Das tun Sie am besten in der Entwurfsansicht über die entsprechende Schaltfläche Code oder über den Menübefehl Ansicht ( Code. Im oberen Teil des Codefensters finden Sie zwei Kombinationsfelder vor:

    Eines für die Anzeige der Objekte des aktuellen Formulars und ein weiteres für die Anzeige der zur Verfügung stehenden Ereignisse des ausgewählten Objekts (siehe Bild 8).

    Das Webbrowser-Steuerele-ment löst das Ereignis TitleChange aus, wenn der Titel der aktuellen Seite verfügbar ist. Sie können die Ereignisprozedur dazu verwenden, der Titelleiste des Formulars den Titel des HTML-Dokumentes zuzuweisen. Verwenden Sie dazu die Prozedur aus Quellcode 2.

    Private Sub cmbURL_NotInList(NewData As String, _    Response As Integer)
        Dim db As Database
        Dim rst As Recordset
        Set db = CurrentDb
        Set rst = db.OpenRecordset ("tblURL", dbOpenDynaset)
        rst.AddNew
        rst!URL = NewData
        rst.Update
        rst.Close
        db.Close
        Response = acDataErrAdded

    Bild 10: Datenherkunft des Kombinationsfeldes

    Anzeige der kompletten Internetadresse im Kombinationsfeld

    Neben dem Seitentitel soll das Formular auch die komplette Adresse der HTML-Seite anzeigen. Zur Anzeige der Adresse verwenden Sie einfach das Kombinationsfeld cmbURL, in das Sie auch die gewünschte Adresse eingegeben haben.

    Damit das Kombinationsfeld die komplette Adresse anzeigt, verwenden Sie die Ereigniseigenschaft DocumentComplete. Hinterlegen Sie die Prozedur aus Quellcode 3 für die Eigenschaft.

    Speichern der Adressen im Kombinationsfeld

    Für die bisherigen Anwendungen hätten Sie sicher auch ein Textfeld statt eines Kombinationsfeldes verwenden können. Nun sollen Sie das Kombinationsfeld mit Leben füllen. Zunächst einmal erstellen Sie eine Tabelle, die als Grundlage für die Datenherkunft des Kombinationsfeldes dient.

    Nennen Sie die Tabelle tblURL und legen Sie zwei Felder entsprechend der Abb. 9 an.

    Anschließend wechseln Sie in die Entwurfsansicht des Formulars und klicken in das Feld Datensatzherkunft im Register Daten des Eigenschaftsfensters. Klicken Sie dann auf die Schaltfläche mit den drei Punkten […].

    Fügen Sie dem Abfrageentwurf die Tabelle cmbURL hinzu und ziehen Sie das Feld URL in das Entwurfsraster (siehe Bild 10).

    Speichern Sie anschließend die Abfrage unter dem Namen qryURL.

    Private Sub btnQuellcode_Click()
        Dim Quellcode As MSHTML.HTMLDocument
        Set Quellcode = Me!ctlInternetBrowser.Document
        DoCmd.OpenForm "frmQuellcode"
        Forms("frmQuellcode").Caption = "HTML-Quellcode"
        Forms("frmQuellcode").txtQuellcode = _        Quellcode.DocumentElement.InnerHTML
        Set Quellcode = Nothing

    Internetadressen hinzufügen

    Außerdem müssen Sie dafür sorgen, dass der Datenherkunft noch nicht vorhandene Internetadressen hinzugefügt werden. Dazu verwenden Sie die Ereignisprozedur Bei Nicht in Liste (cmdURL_Not in List) des Kombinationsfeldes. Legen Sie für die Eigenschaft die Prozedur aus Quellcode 4 an.

    Die Prozedur legt einen neuen Datensatz in der Tabelle tblURL an und fügt den Namen der aktuellen Seite hinzu.

    Damit das auch funktioniert, müssen Sie noch die Eigenschaft Nur Listeneinträge auf den Wert Ja einstellen.

    Sie können bisher geöffnete Internetadressen nun bequem über das Kombinationsfeld anzeigen.

    Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

    den kompletten Artikel im PDF-Format mit Beispieldatenbank

    diesen und alle anderen Artikel mit dem Jahresabo

    Schreibe einen Kommentar