Integration einer HTML-Hilfe

Zu einer kompletten Anwendung gehört auch eine Onlinehilfe. Mittlerweile gibt es am Markt eine Vielzahl von Tools, die das Erstellen einer Hilfedatei stark vereinfachen. Was jetzt noch fehlt, ist die Integration der Hilfe in Ihre Anwendung. Dieser Beitrag zeigt, wo und wie der Benutzer von Access aus auf die Hilfe zugreifen kann, wie Sie dies realisieren und welche Stolperfallen wie etwa Sicherheitseinstellungen dabei auftauchen können.

Welches Hilfe-Format ist das richtige

Mit Windows 95 wurde 1995 die Hilfe im Format WinHelp (*.hlp) ausgeliefert. Nachteilig an diesem Format ist die insgesamt unübersichtliche Navigation. Das Inhaltsverzeichnis wird in einem gesonderten Fenster dargestellt. Im Extremfall sind bis zu vier Fenster gleichzeitig geöffnet. Außerdem unterstützt Windows Vista dieses Format standardmäßig nicht mehr. Es wird zwar einen Viewer zum Herunterladen geben, Sie können aber nie sicher sein, dass dieser auch installiert ist. Das Standardhilfesystem für Windows ist seit 1997 die HTML-Hilfe (*.chm). Zur Erstellung fasst ein Compiler HTML-Dateien zu einer Hilfedatei zusammen und integriert ein Inhaltsverzeichnis und einen Index. Mit Visual Studio .NET wurde 2002 das teilweise XML-basierte Help 2.0-Format eingeführt. Es ist jedoch nicht geplant, Help 2.0 öffentlich freizugeben. Microsoft empfiehlt, weiterhin die HTML-Hilfe zu verwenden. Für eine aktuelle Onlinehilfe bietet sich also nur das HTML-Hilfe-Format an.

Technische Voraussetzungen

Um eine HTML-Hilfe einsetzen zu können, müssen folgende Voraussetzungen erfüllt sein:

  • MS Office 2000 oder höher
  • Internet Explorer 4.0 oder höher
  • Windows 98 oder Windows 2000 oder höher

Welche Tools gibt es

Es gibt eine Vielzahl von Tools, die Sie bei der Erstellung einer HTML-Hilfe unterstützen. Es sind Freeware- und Shareware-Tools, aber auch kommerzielle Anwendungen zu finden. Einen überblick finden Sie unter [1].

Fast alle Lösungen basieren auf dem HTML Help Workshop von Microsoft [2]. Eine Einführung in dieses Tool liefert der Beitrag Onlinehilfe mit dem HTML Help Workshop (86). Eine Schritt-für-Schritt-Anleitung, wie Sie mit dem HTML Help Workshop eine Hilfe erstellen, ist unter [3] zu finden.

Wer ein etwas komfortableres Tool sucht, ist etwa mit dem Vizacc HelpMaker gut bedient [4].

Hilfekontext-IDs

Damit die Hilfedatei nicht nur geöffnet wird, sondern auch gleich das passende Thema angezeigt werden kann, muss die Hilfedatei entsprechend vorbereitet werden. Sie müssen so genannte Hilfekontext-IDs definieren. Eine Hilfekontext-ID ist ein Zahlenwert, der eine bestimmte Seite in einer Hilfedatei repräsentiert.

Als Hilfekontext-ID können Sie jede beliebige Zahl vom Datentyp Long eintragen. Wie Sie solche Hilfekontext-IDs mit dem HTML Help Workshop definieren, erfahren Sie etwa im Beitrag Onlinehilfe mit Access (Shortlink 88). Mit anderen Tools ist dies weit weniger aufwändig, wie der Screenshot aus Bild 1 vom HelpMaker zeigt.

KontextIDs.gif

Bild 1: Die Bearbeitung der Hilfekontext-IDs mit dem Power-Editor des HelpMakers

Möglichkeiten der Integration

Microsoft beschreibt in [5] eine Vielzahl von Möglichkeiten, um eine Onlinehilfe in eine (Access-)Anwendung zu integrieren.

  • Hilfe an der Oberfläche: Formulare, Berichte und Steuerelemente können auf das Drücken der Taste F1 reagieren und die entsprechende kontextsensitive Hilfe anzeigen. Gleichzeitiges Drücken der Umschalttaste zeigt die Direkthilfe zu Formularen und Steuerelementen an. Auch Menüs können auf die Direkthilfe reagieren.
  • Hilfe im VBA-Code: Die MsgBox-Funktion und auch die InputBox-Funktion lassen sich durch optionale Parameter um eine Hilfeschaltfläche erweitern. Auf diesem Weg können Sie Ihren Anwendern durch zusätzliche Informationen in der Hilfe die richtige Antwort erleichtern. Auch die Raise-Methode des Err-Objekts liefert einen Parameter zur zusätzlichen Eingabe von Informationen zur Hilfe.
  • Hilfe im Objektkatalog: Im Objektkatalog besteht ebenfalls die Möglichkeit, eine individuelle Hilfe aufzurufen. Hilfe im Objektkatalog dürfte dann interessant sein, wenn Sie Code-Komponenten an Dritte weitergeben.
  • Kontextsensitive Hilfe: Die so genannte kontextsensitive Hilfe reagiert auf das Drücken der Taste F1 in Steuerelementen, Formularen und Berichten.

Implementierung

Wenn Sie Ihre Onlinehilfe erstellt und die entsprechenden Hilfekontext-IDs definiert haben, dann sind nur noch zwei Eingaben erforderlich. Wechseln Sie dazu in die Entwurfsansicht des jeweiligen Formulars oder Berichts und aktivieren Sie das Eigenschaftsfenster (F4). Füllen Sie auf der Registerseite Andere die Einträge für Hilfedatei und Hilfekontext-ID mit den entsprechenden Werten (siehe Bild 2). In einem Formular können Sie auch dafür sorgen, dass jedes Steuerelement seine eigene Hilfeseite öffnet. Dazu tragen Sie die jeweilige HilfekontextID in die Eigenschaft des jeweiligen Steuerelements ein.

EigenschaftenFormular.tif

Bild 2: Informationen zur Hilfedatei festlegen

Hilfe startet im Access-Hilfe-Fenster

Wenn Sie jetzt Ihre Anwendung starten und auf die Taste F1 drücken, dann wird Ihre Hilfedatei geöffnet und die gewünschte Seite angezeigt. Wenn Sie aber genauer hinsehen, dann stellen Sie fest, dass Ihre Hilfe im Hilfe-Fenster von Access geöffnet wurde (siehe Bild 3).

HilfeInAccessHilfe.gif

Bild 3: Hilfe wird im Fenster der Access-Hilfe angezeigt

Sie können wahrscheinlich damit leben, dass der Fenstertitel der Hilfe Microsoft Access-Hilfe lautet. Aber leider werden auch der Antwortassistent und der Index aus der Access-Hilfe verwendet. Dieses Verhalten wird von MS im KB-Artikel 275117 bestätigt. Wenn Sie wollen, dass Ihre Hilfe im eigenen Hilfefenster angezeigt wird, dann müssen Sie selbst tätig werden. Dazu müssen Sie die beiden folgenden Fragen klären:

  • Wie wollen Sie Ihre Hilfe aufrufen
  • Wie wollen Sie auf das Drücken der Taste F1 reagieren

Die Hilfe aufrufen

Grundsätzlich haben Sie zwei Möglichkeiten, um Ihre Hilfe aufzurufen – über die HTML-Help-API (s. Listing 1) oder über den Shell-Befehl (s. Listing 2). Der Aufruf der Hilfe über die HTML-Help-API hat den Nachteil, dass Access eventuell abstürzt, wenn man Access schließt und das Hilfe-Fenster noch geöffnet ist. Daher ist es empfehlenswert, den Code für den Aufruf in einem Klassenmodul unterzubringen, in dessen Terminate-Ereignis man eine Anweisung zum Schließen des Hilfefensters einbaut.

Listing 1: Hilfe anzeigen mit der HTML-Help-API

Private Declare Function HtmlHelp Lib "HHCtrl.ocx" Alias "HtmlHelpA" (ByVal hWndCaller As Long, _
     ByVal pszFile As String, ByVal uCommand As Long, dwData As Any) As Long
Public Sub HilfeAnzeigen(strHelpFile As String, lngID As Long)
     Dim hWnd As Long
     hWnd = HtmlHelp(Application.hWndAccessApp, strHelpFile, &HF, ByVal lngID)
End Sub

Listing 2: Hilfe anzeigen mit dem Shell-Befehl

Public Sub HilfeAnzeigen(strHelpFile As String, lngID As Long)
     Shell ("hh -mapid " & lngContextID & " " & strHelpFile), vbNormalFocus
End Sub

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

TestzugangOder bist Du bereits Abonnent? Dann logge Dich gleich hier ein. Die Zugangsdaten findest Du entweder in der aktuellen Print-Ausgabe auf Seite U2 oder beim Online-Abo in der E-Mail, die Du als Abonnent regelmäßig erhältst:

Schreibe einen Kommentar