PDF-basierte Hilfe

Zu vielen Access-Anwendungen gibt es Beschreibungen und Dokumentationen, eine integrierte Online-Hilfe jedoch nur selten. Warum funktionieren Sie nicht die schon vorhandene Programmbeschreibung zum Hilfetext um Diesen Hilfetext lassen Sie sich dann kontextsensitiv anzeigen. Wie Sie diese Idee mit einem PDF-Dokument umsetzen, zeigt dieser Beitrag.

Wenn Sie eine PDF-basierte Hilfe umsetzen wollen, sollten Sie sich mit folgenden Fragen beschäftigen:

  • Wie öffnen Sie ein PDF-Dokument per VBA
  • Wie erreichen Sie, dass ein PDF-Dokument nach dem öffnen eine bestimmte Seite anzeigt
  • Wie stellen Sie eine Verknüpfung zwischen dem Hilfethema und der Seitenzahl im PDF-Dokument her
  • Wie sieht die Funktion zum Aufruf Ihrer Hilfe aus

Ein PDF-Dokument öffnen

Als Erstes ist die Frage zu klären, wie Sie ein PDF-Dokument öffnen. Bei der Suche nach einer Lösung stoßen Sie ganz schnell auf die Funktion FollowHyperlink. Mit dieser Funktion können Sie auf einfache Art ein PDF-Dokument öffnen:

Dim strPfad As String
Dim strDok As String
strPfad = CurrentProject.Path
strDok = strPfad & "\\" & "Hilfe.pdf"
Application.FollowHyperlink strDok

Der Vorteil dieser Funktion liegt in ihrer Einfachheit. Darin besteht aber auch gleichzeitig ihr Nachteil. Sie haben keine Kontrolle über die Ausführung der Funktion oder die Anwendung, die das Dokument öffnen soll. Sie können nur den Pfad zum Dokument übergeben. Die Angabe weiterer Parameter, die im Folgenden benötigt werden, ist nicht möglich. Wozu Sie diese weiteren Parameter brauchen, erfahren Sie später im Text.

Eine andere Funktion, die Ihnen hilft, ein PDF-Dokument anzuzeigen, finden Sie unter den API-Funktionen. Es ist die Funktion ShellExecute [1].

Mit dieser Funktion starten Sie jede beliebige externe Anwendung. Außerdem können Sie beliebige Dokumente mit dem dafür vorgesehenen Programm öffnen oder drucken. Damit Sie die Funktion ShellExecute verwenden können, müssen Sie diese zuerst in einem Modulkopf deklarieren:

Private Declare Function ShellExecute _
   Lib "shell32.dll" Alias "ShellExecuteA" _
   (ByVal hwnd As Long, _
   ByVal lpOperation As String, _
   ByVal lpFile As String, _
   ByVal lpParameters As String, _
   ByVal lpDirectory As String, _
   ByVal nShowCmd As SW_Show) As Long

Tab. 1 gibt einen überblick über die verwendeten Parameter und ihre Bedeutung.

Parameter

Erläuterung

hWnd

Verweis auf das Fenster des startenden Programms.

lpOperation

Welche Aktion soll ausgeführt werden Mögliche Werte sind etwa “open”, “print” oder “edit”.

lpFile

Welche Datei soll geöffnet werden

lpParameters

Wenn in lpFile der Pfad zu einer Anwendung angegeben ist, können hiermit Parameter an das Programm übergeben werden.

lpDirectory

Arbeitsverzeichnis des Programms.

nShowCmd

Konstante, die angibt, wie das Programm angezeigt werden soll. 1 bedeutet “normal”, also sichtbar.

Tab. 1: Parameter für die Funktion ShellExecute

Für den Parameter nShowCmd ist eine Vielzahl von Werten möglich. Bei Interesse können Sie diese in der Beispieldatenbank nachlesen.

Der Aufruf der Funktion erfolgt ähnlich einfach wie bei FollowHyperlink:

Dim strPfad As String
Dim strDok As String
strPfad = CurrentProject.Path
strDok = strPfad & "\\" & "Hilfe.pdf"
ShellExecute Me.hwnd, "Open", _
 strDok, vbNullString, "C:\\", _
 SW_SHOWNORMAL

Mit Hilfe dieser Funktion sind Sie in der Lage, ein beliebiges PDF-Dokument mit dem Adobe Reader aus einem Formular heraus zu öffnen. Leider können Sie auf diesem Weg nur das Dokument als Ganzes öffnen. Dabei wird Ihnen immer die erste Seite des Dokuments angezeigt.

Ein PDF-Dokument an einer bestimmten Stelle öffnen

Seit der Version 6 des Adobe Readers ist es möglich, einem PDF-Dokument beim öffnen einen oder mehrere Parameter zu übergeben. Mit Hilfe dieser Parameter lässt sich unter anderem steuern, welche Seite nach dem öffnen angezeigt werden soll. Die Dokumentation dieser Parameter finden Sie auf den Webseiten der Firma Adobe [2], [3] und [4]. Die Dokumentationen und damit auch die Parameter unterscheiden sich teilweise voneinander. Die in diesem Beitrags verwendeten Parameter funktionieren aber unverändert mit allen Versionen seit Adobe Reader 6.

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