{"id":55000492,"date":"2007-10-01T00:00:00","date_gmt":"2021-02-11T21:17:55","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=492"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"PDFbasierte_Hilfe","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/PDFbasierte_Hilfe\/","title":{"rendered":"PDF-basierte Hilfe"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg03.met.vgwort.de\/na\/30101bbae1cb4dd090cc63773f68bf79\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>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. <\/b><\/p>\n<div class=\"story\">\n<p>Wenn Sie eine PDF-basierte Hilfe umsetzen wollen, sollten Sie sich mit folgenden Fragen besch&auml;ftigen:<\/p>\n<ul>\n<li class=\"aufz-hlung\">Wie &ouml;ffnen Sie ein PDF-Dokument per VBA<\/li>\n<li class=\"aufz-hlung\">Wie erreichen Sie, dass ein PDF-Dokument nach dem &ouml;ffnen eine bestimmte Seite anzeigt<\/li>\n<li class=\"aufz-hlung\">Wie stellen Sie eine Verkn&uuml;pfung zwischen dem Hilfethema und der Seitenzahl im PDF-Dokument her<\/li>\n<li class=\"aufz-hlung\">Wie sieht die Funktion zum Aufruf Ihrer Hilfe aus<\/li>\n<\/ul>\n<p><b>Ein PDF-Dokument &ouml;ffnen<\/b><\/p>\n<p>Als Erstes ist die Frage zu kl&auml;ren, wie Sie ein PDF-Dokument &ouml;ffnen. Bei der Suche nach einer L&ouml;sung sto&szlig;en Sie ganz schnell auf die Funktion <b>FollowHyperlink<\/b>. Mit dieser Funktion k&ouml;nnen Sie auf einfache Art ein PDF-Dokument &ouml;ffnen:<\/p>\n<pre>Dim strPfad As String\r\nDim strDok As String\r\nstrPfad = CurrentProject.Path\r\nstrDok = strPfad &amp; \"\\\" &amp; \"Hilfe.pdf\"\r\nApplication.FollowHyperlink strDok<\/pre>\n<p>Der Vorteil dieser Funktion liegt in ihrer Einfachheit. Darin besteht aber auch gleichzeitig ihr Nachteil. Sie haben keine Kontrolle &uuml;ber die Ausf&uuml;hrung der Funktion oder die Anwendung, die das Dokument &ouml;ffnen soll. Sie k&ouml;nnen nur den Pfad zum Dokument &uuml;bergeben. Die Angabe weiterer Parameter, die im Folgenden ben&ouml;tigt werden, ist nicht m&ouml;glich. Wozu Sie diese weiteren Parameter brauchen, erfahren Sie sp&auml;ter im Text.<\/p>\n<p>Eine andere Funktion, die Ihnen hilft, ein PDF-Dokument anzuzeigen, finden Sie unter den API-Funktionen. Es ist die Funktion <b>ShellExecute <\/b>[1].<\/p>\n<p>Mit dieser Funktion starten Sie jede beliebige externe Anwendung. Au&szlig;erdem k&ouml;nnen Sie beliebige Dokumente mit dem daf&uuml;r vorgesehenen Programm &ouml;ffnen oder drucken. Damit Sie die Funktion <b>ShellExecute <\/b>verwenden k&ouml;nnen, m&uuml;ssen Sie diese zuerst in einem Modulkopf deklarieren:<\/p>\n<pre>Private Declare Function ShellExecute _\r\n   Lib \"shell32.dll\" Alias \"ShellExecuteA\" _\r\n   (ByVal hwnd As Long, _\r\n   ByVal lpOperation As String, _\r\n   ByVal lpFile As String, _\r\n   ByVal lpParameters As String, _\r\n   ByVal lpDirectory As String, _\r\n   ByVal nShowCmd As SW_Show) As Long<\/pre>\n<p>Tab. 1 gibt einen &uuml;berblick &uuml;ber die verwendeten Parameter und ihre Bedeutung.<\/p>\n<table class=\"table-style-2\">\n<thead>\n<tr>\n<td class=\"aiu-header\">\n<p class=\"tabellenkopf\">Parameter<\/p>\n<\/td>\n<td class=\"aiu-header\">\n<p class=\"tabellenkopf\">Erl&auml;uterung<\/p>\n<\/td>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td class=\"aiu-zeilen\">\n<p class=\"texttabelle\">hWnd<\/p>\n<\/td>\n<td class=\"aiu-zeilen\">\n<p class=\"texttabelle\">Verweis auf das Fenster des startenden Programms.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"aiu-zeilen\">\n<p class=\"texttabelle\">lpOperation<\/p>\n<\/td>\n<td class=\"aiu-zeilen\">\n<p class=\"texttabelle\">Welche Aktion soll ausgef&uuml;hrt werden M&ouml;gliche Werte sind etwa &#8222;open&#8220;, &#8222;print&#8220; oder &#8222;edit&#8220;.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"aiu-zeilen\">\n<p class=\"texttabelle\">lpFile<\/p>\n<\/td>\n<td class=\"aiu-zeilen\">\n<p class=\"texttabelle\">Welche Datei soll ge&ouml;ffnet werden<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"aiu-zeilen\">\n<p class=\"texttabelle\">lpParameters<\/p>\n<\/td>\n<td class=\"aiu-zeilen\">\n<p class=\"texttabelle\">Wenn in lpFile der Pfad zu einer Anwendung angegeben ist, k&ouml;nnen hiermit Parameter an das Programm &uuml;bergeben werden.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"aiu-zeilen\">\n<p class=\"texttabelle\">lpDirectory<\/p>\n<\/td>\n<td class=\"aiu-zeilen\">\n<p class=\"texttabelle\">Arbeitsverzeichnis des Programms.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"aiu-zeilen\">\n<p class=\"texttabelle\">nShowCmd<\/p>\n<\/td>\n<td class=\"aiu-zeilen\">\n<p class=\"texttabelle\">Konstante, die angibt, wie das Programm angezeigt werden soll. <span class=\"cmd\">1<\/span> bedeutet &#8222;normal&#8220;, also sichtbar.<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><b><span style=\"color:darkgrey\">Tab. 1: Parameter f&uuml;r die Funktion ShellExecute<\/span><\/b><\/p>\n<p>F&uuml;r den Parameter <b>nShowCmd <\/b>ist eine Vielzahl von Werten m&ouml;glich. Bei Interesse k&ouml;nnen Sie diese in der Beispieldatenbank nachlesen.<\/p>\n<p>Der Aufruf der Funktion erfolgt &auml;hnlich einfach wie bei <b>FollowHyperlink<\/b>:<\/p>\n<pre>Dim strPfad As String\r\nDim strDok As String\r\nstrPfad = CurrentProject.Path\r\nstrDok = strPfad &amp; \"\\\" &amp; \"Hilfe.pdf\"\r\nShellExecute Me.hwnd, \"Open\", _\r\n strDok, vbNullString, \"C:\\\", _\r\n SW_SHOWNORMAL<\/pre>\n<p>Mit Hilfe dieser Funktion sind Sie in der Lage, ein beliebiges PDF-Dokument mit dem Adobe Reader aus einem Formular heraus zu &ouml;ffnen. Leider k&ouml;nnen Sie auf diesem Weg nur das Dokument als Ganzes &ouml;ffnen. Dabei wird Ihnen immer die erste Seite des Dokuments angezeigt.<\/p>\n<p class=\"zwischen-berschrift-oberer-spaltenrand\">Ein PDF-Dokument an einer bestimmten Stelle &ouml;ffnen<\/p>\n<p>Seit der Version 6 des Adobe Readers ist es m&ouml;glich, einem PDF-Dokument beim &ouml;ffnen einen oder mehrere Parameter zu &uuml;bergeben. Mit Hilfe dieser Parameter l&auml;sst sich unter anderem steuern, welche Seite nach dem &ouml;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&auml;ndert mit allen Versionen seit Adobe Reader 6.<\/p>\n<p><!--30percent--><\/p>\n<p>Was bewirken diese Parameter nun In der Dokumentation von Adobe finden Sie folgende Erl&auml;uterung:<\/p>\n<pre>&lt;path to Acrobat&gt; <br \/>\/A \"&lt;open parameter&gt;=OpenActions\" <br \/>\"&lt;path to PDF file&gt;\"<\/pre>\n<p>Dazu gibt es folgendes konkretes Beispiel:<\/p>\n<pre>Acrobat.exe <br \/>\/A \"zoom=1000=OpenActions\" <br \/>\"C:\\example.pdf\"<\/pre>\n<p>Damit Sie einen <b>Open<\/b>-Parameter verwenden k&ouml;nnen, ben&ouml;tigen Sie folgende drei Informationen:<\/p>\n<ul>\n<li class=\"aufz-hlung\">den Pfad zu <b>Acrobat.exe<\/b><\/li>\n<li class=\"aufz-hlung\">den <b>Open<\/b>-Parameter selber<\/li>\n<li class=\"aufz-hlung\">den Pfad und den Namen des PDF-Dokuments<\/li>\n<\/ul>\n<p>Wie passen diese Informationen nun zur Funktion <b>ShellExecute<\/b> Sie &uuml;bergeben der Funktion <b>ShellExecute <\/b>den Pfad zu <b>AcroRd32.exe <\/b>(Reader) oder <b>Acrobat.exe <\/b>(Acrobat Vollversion) als Parameter <b>lpFile<\/b>. F&uuml;r den Parameter <b>lpParameters <\/b>&uuml;bergeben Sie den Text f&uuml;r den <b>Open<\/b>-Parameter und den Pfad zum PDF-Dokument.<\/p>\n<p>Als <b>Open<\/b>-Parameter verwenden Sie den Wert <b>page<\/b>. Damit k&ouml;nnen Sie angeben, welche Seite nach dem &ouml;ffnen des PDF-Dokuments angezeigt werden soll. Der komplette Text f&uuml;r den <b>Open<\/b>-Parameter sieht so aus:<\/p>\n<pre>\/A \"page=3=OpenActions\" <\/pre>\n<p>In diesem Beispiel wird nach dem &ouml;ffnen die dritte Seite des PDF-Dokuments angezeigt:<\/p>\n<pre>Dim strExe As String\r\nDim strPfad As String\r\nDim strDok As String\r\nDim lngSeite As Long\r\nstrPfad = CurrentProject.Path\r\nstrDok = strPfad &amp; \"\\\" &amp; \"Hilfe.pdf\"\r\nstrExe = GibExe(strDok)\r\nlngSeite = Me!cboSeite\r\nShellExecute Me.hwnd, \"Open\", _\r\n   strExe, \" \/A \"\"page=\" &amp; _\r\n   lngSeite &amp; \"=OpenActions\"\" \"\"\" &amp; _\r\n   strDok &amp; \"\"\"\", CurrentProject.Path, SW_SHOWNORMAL<\/pre>\n<p>Ein Problem gibt es mit der bisher beschriebenen L&ouml;sung noch &#8211; der Pfad zu <b>Acrobat.exe<\/b>. Sie k&ouml;nnen den Pfad f&uuml;r Ihr System ermitteln und in den VBA-Code einf&uuml;gen. Wenn Sie aber die n&auml;chste Version des Adobe Readers installieren, wird der Pfad nicht mehr stimmen und Sie m&uuml;ssen Ihren Code anpassen.<\/p>\n<p>Noch viel problematischer wird es, wenn Sie Ihre Datenbank an Dritte weitergeben. Dann haben Sie keine Kontrolle mehr dar&uuml;ber, wo der Adobe Reader installiert wurde.<\/p>\n<p>Auch dieses Problem k&ouml;nnen Sie mit einer API-Funktion l&ouml;sen. Die Funktion hei&szlig;t <b>FindExecutable <\/b>[5]. Dieser Funktion &uuml;bergeben Sie den Pfad zu einem Dokument. Als Ergebnis erhalten Sie den Namen und den Pfad der mit dieser Datei verkn&uuml;pften Anwendung.<\/p>\n<p>Eine Funktion, der Sie einen Dateinamen &uuml;bergeben und als Ergebnis den Pfad zur verkn&uuml;pften Exe-Datei erhalten, finden Sie in folgendem Listing:<\/p>\n<pre>Private Function GibExe(strFile As String) _<br \/> As String\r\n   'Variablen deklarieren\r\n   Dim intI As Integer\r\n   Dim strBuffer As String\r\n   'Buffer f&uuml;llen\r\n   strBuffer = String(MAX_FILENAME_LEN, 32)\r\n   'Exe-Datei zum &uuml;bergebenen Dokument ermitteln\r\n   intI = FindExecutable(strFile, vbNullString, _<br \/> strBuffer)\r\n   If intI &gt; 32 Then\r\n     GibExe = Left$(strBuffer, InStr(strBuffer, _<br \/> Chr$(0)) - 1)\r\n   Else\r\n     MsgBox \"Keine verkn&uuml;pfte Anwendung gefunden\"\r\n   End If\r\nEnd Function<\/pre>\n<p class=\"zwischen-berschriftnachquellcode\">Vom Hilfethema zur Seitenzahl<\/p>\n<p>Sie sind jetzt in der Lage, ein PDF-Dokument zu &ouml;ffnen und eine beliebige Seite anzeigen zu lassen. Was jetzt noch fehlt, ist die Verkn&uuml;pfung zwischen dem anzuzeigenden Hilfethema und der entsprechenden Seite im PDF-Dokument. <\/p>\n<p>Sie k&ouml;nnten auf die Idee kommen, an jeder Stelle, an der Sie die Hilfe aufrufen, im VBA-Code die Seitenzahl fest einzutragen. Aus dieser Formulierung wird gleich das Problem deutlich, das ein solches Vorgehen mit sich bringen w&uuml;rde. Wenn in der Hilfedatei ein Text ge&auml;ndert oder erg&auml;nzt wird, kann dies zur Folge haben, dass sich die Seitenzahlen &auml;ndern. In diesem Fall m&uuml;ssten Sie Ihren gesamten VBA-Code durchsuchen und alle fest eincodierten Seitenzahlen &uuml;berpr&uuml;fen und anpassen. Besser ist es, wenn Sie eine Tabelle verwenden, in der Sie die Information speichern, welches Hilfethema auf welcher Seite dargestellt ist. Den Aufbau der Tabelle sehen Sie in Tab. 2.<\/p>\n<table class=\"table-style-2\">\n<thead>\n<tr>\n<td class=\"aiu-header\">\n<p class=\"tabellenkopf\">Feldname<\/p>\n<\/td>\n<td class=\"aiu-header\">\n<p class=\"tabellenkopf\">Eigenschaften<\/p>\n<\/td>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td class=\"aiu-zeilen\">\n<p class=\"texttabelle\">HilfeThema<\/p>\n<\/td>\n<td class=\"aiu-zeilen\">\n<p class=\"texttabelle\">Datentyp Text<br \/>Prim&auml;rschl&uuml;ssel<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"aiu-zeilen\">\n<p class=\"texttabelle\">Seite<\/p>\n<\/td>\n<td class=\"aiu-zeilen\">\n<p class=\"texttabelle\">Datentyp: Long Integer<br \/>Standardwert: 1<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><b><span style=\"color:darkgrey\">Tab. 2: Aufbau der Tabelle tbl_HilfeSeitenzahl<\/span><\/b><\/p>\n<p>Die Spalte <b>HilfeThema <\/b>ist als Prim&auml;rschl&uuml;ssel definiert. Damit wird sichergestellt, dass jedes Hilfethema nur einmal in die Tabelle eingetragen werden kann. Die Spalte <b>Seite <\/b>nimmt die Seitenzahl auf. Sie hat als Standardwert den Wert <b>1<\/b>. Damit wird erreicht, dass im Zweifel die Hilfedatei mit der ersten Seite aufgerufen wird.<\/p>\n<p>Es bietet sich an, das Hilfedokument so zu formatieren, dass jedes Hilfethema auf einer neuen Seite beginnt. In einem so formatierten Dokument wirken sich Korrekturen am Text selten auf die nachfolgenden Seiten aus. <\/p>\n<p>Wenn ein Thema l&auml;nger wird und sich dadurch die Seitenzahl der nachfolgenden Themen &auml;ndert, werden Sie dies sofort bemerken. Dann k&ouml;nnen Sie leicht mit einer Aktualisierungsabfrage die notwendigen Korrekturen in der Tabelle <b>tbl_HilfeSeitenzahl <\/b>herbeif&uuml;hren:<\/p>\n<pre>UPDATE tbl_HilfeSeitenzahl \r\nSET Seite = Seite+1\r\nWHERE Seite&gt;=3;<\/pre>\n<p class=\"zwischen-berschriftnachquellcode\">Funktion zum Aufruf der Hilfe<\/p>\n<p>Jetzt fehlt Ihnen nur noch eine globale Funktion, mit der Sie Ihre Hilfe aufrufen. Dieser Funktion &uuml;bergeben Sie als Parameter das anzuzeigende Hilfethema (s. Listing 1).<\/p>\n<div class=\"abbildung\">\n<p class=\"tabellenkopf\">Listing 1: Funktion zur Anzeige eines Hilfethemas <\/p>\n<pre>Private Const cstrHilfeDatei As String = \"Hilfe.pdf\"\r\nPublic Function HilfeAnzeigen(strThema As String)\r\n   'Variablen deklarieren\r\n   Dim strPfad As String\r\n   Dim strDok As String\r\n   Dim strExe As String\r\n   Dim lngSeite As Long\r\n   'Hilfedatei ermitteln\r\n   strPfad = CurrentProject.Path\r\n   strDok = strPfad &amp; \"\\\" &amp; cstrHilfeDatei\r\n   'Seitenzahl ermitteln\r\n   lngSeite = Nz(DLookup(\"Seite\", \"tbl_HilfeSeitenzahl\", \"HilfeThema='\" &amp; strThema &amp; \"'\"), 1)\r\n   'Pfad zur Adobe.exe ermitteln\r\n   strExe = GibExe(strDok)\r\n   'Hilfe anzeigen\r\n   ShellExecute Application.hWndAccessApp, \"Open\", strExe, \" \/A \"\"page=\" &amp; lngSeite _<br \/> &amp; \"=OpenActions\"\" \"\"\" &amp; strDok &amp; \"\"\"\", CurrentProject.Path SW_SHOWNORMAL\r\nEnd Function<\/pre>\n<\/p><\/div>\n<p>Die Funktion geht davon aus, dass die Hilfedatei im selben Verzeichnis wie die Anwendung gespeichert ist. Das macht die Funktion robust.<\/p>\n<p>Wenn die Anwendung (zusammen mit dem Hilfe-PDF) in einen anderen Pfad verschoben wird, sind keine Anpassungen notwendig. Der Name der Hilfedatei ist als Konstante deklariert. Wenn Sie den Dateinamen f&uuml;r die Hilfedatei &auml;ndern, brauchen Sie nur diese Konstante anzupassen.<\/p>\n<p>Die Prozedur zum Aufruf der Hilfe ist absichtlich als <b>Function<\/b> ausgelegt, obwohl sie keinen R&uuml;ckgabewert liefert. Auf diesem Weg ist es m&ouml;glich, dass Sie den Aufruf der Hilfefunktion direkt in die Eigenschaft <b>Beim Klicken<\/b> einer Befehlsschaltfl&auml;che schreiben (siehe Bild 1).<\/p>\n<div class=\"abbildung\">\n        <img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2007_05\/PDFHilfe-web-images\/Bild334_opt.jpeg\" alt=\"missing image file\" \/>\n    <\/div>\n<div class=\"story\">\n<p><b><span style=\"color:darkgrey\">Bild 1: Aufruf der Hilfefunktion in der Eigenschaft Beim Klicken<\/span><\/b><\/p>\n<\/p><\/div>\n<p>Nachdem Sie jetzt alle Bausteine f&uuml;r eine PDF-basierte Hilfe zusammengestellt haben, k&ouml;nnen Sie anfangen und beispielsweise in Ihrer gesamten Anwendung Hilfeschaltfl&auml;chen platzieren (siehe Bild 2). <\/p>\n<div class=\"abbildung\">\n        <img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2007_05\/PDFHilfe-web-images\/Bild341_opt.jpeg\" alt=\"missing image file\" \/>\n    <\/div>\n<div class=\"story\">\n<p><b><span style=\"color:darkgrey\">Bild 2: Eine Hilfe-Schaltfl&auml;che im Einsatz<\/span><\/b><\/p>\n<\/p><\/div>\n<p>In der Eigenschaft <b>Beim Klicken <\/b>rufen Sie die Funktion zum Anzeigen der Hilfe mit dem jeweiligen Thema auf.<\/p>\n<p><b>Weitere &uuml;berlegungen<\/b><\/p>\n<p>Es gibt die M&ouml;glichkeit, als <b>Open<\/b>-Parameter eine so genannte <b>named destination <\/b>anzugeben. Damit k&ouml;nnten Sie die Hilfefunktion noch weiter vereinfachen und sich die Tabelle zur Verkn&uuml;pfung von Hilfethema und Seitenzahl sparen. <\/p>\n<p>Dieser Weg w&uuml;rde jedoch erfordern, dass Sie erweiterte Kenntnisse &uuml;ber die Erstellung von PDF-Dokumenten haben. Aus diesem Grund wurde dieser Weg in diesem Artikel nicht weiter verfolgt.<\/p>\n<p>Laut der Dokumentation von Adobe gibt es auch die M&ouml;glichkeit, &uuml;ber einen <b>Open<\/b>-Parameter eine Suche im PDF-Dokument zu starten. Trotz intensiver Recherchen ist es dem Autor nicht gelungen, mit einer solchen Suche befriedigende Ergebnisse zu erzielen.<\/p>\n<p><b>Zusammenfassung<\/b><\/p>\n<p>Mit den <b>Open<\/b>-Parametern des Adobe Readers ist es m&ouml;glich, nach dem &ouml;ffnen eines PDF-Dokuments eine bestimmte Seite anzuzeigen. Diese M&ouml;glichkeit kann dazu genutzt werden, ein PDF-basiertes Hilfesystem zu erstellen.<\/p>\n<p>Um das in diesem Artikel vorgestellte Hilfesystem in Ihrer Anwendung einzusetzen, sind folgende Schritte erforderlich:<\/p>\n<ul>\n<li class=\"aufz-hlung\">Formatieren Sie Ihre Dokumentation so, dass jedes Hilfethema auf einer neuen Seite beginnt.<\/li>\n<li class=\"aufz-hlung\">Importieren Sie die Tabelle <b>tbl_HilfeSeitenzahl <\/b>und f&uuml;gen Sie dort f&uuml;r jedes Hilfethema einen Datensatz ein.<\/li>\n<li class=\"aufz-hlung\">Importieren Sie das Modul <b>mdl_HilfePDF <\/b>aus der Beispieldatenbank.<\/li>\n<li class=\"aufz-hlung\">F&uuml;gen Sie Befehlsschaltfl&auml;chen zum Aufruf der Hilfe in Ihre Anwendung ein.<\/li>\n<\/ul>\n<p>Sie sehen, es ist m&ouml;glich, mit relativ wenig Aufwand ein Hilfesystem zu realisieren. Wann spendieren Sie Ihren Anwendern den einfachen Zugriff auf Ihre Dokumentation\/Hilfe<\/p>\n<p><b>Quellen<\/b><\/p>\n<p class=\"quellen\">[1] Die Funktion ShellExecute: <a href=\"http:\/\/support.microsoft.com\/kbid=238245\">http:\/\/support.microsoft.com\/kbid=238245<\/a><\/p>\n<p class=\"quellen\">[2] PDF Open Parameters f&uuml;r Version 6: <a href=\"http:\/\/partners.adobe.com\/public\/developer\/en\/acrobat\/PDFOpenParams.pdf\">http:\/\/partners.adobe.com\/public\/developer\/en\/acrobat\/PDFOpenParams.pdf<\/a><\/p>\n<p class=\"quellen\">[3] PDF Open Parameters f&uuml;r Version 7: <a href=\"http:\/\/partners.adobe.com\/public\/developer\/en\/acrobat\/PDFOpenParameters.pdf\">http:\/\/partners.adobe.com\/public\/developer\/en\/acrobat\/PDFOpenParameters.pdf<\/a><\/p>\n<p class=\"quellen\">[4] PDF Open Parameters f&uuml;r Version 8: <a href=\"http:\/\/www.adobe.com\/devnet\/acrobat\/pdfs\/pdf_open_parameters.pdf\">http:\/\/www.adobe.com\/devnet\/acrobat\/pdfs\/pdf_open_parameters.pdf<\/a><\/p>\n<p class=\"quellen\">[5] Die Funktion FindExecutable: <a href=\"http:\/\/support.microsoft.com\/kb\/109931\/en-us\">http:\/\/support.microsoft.com\/kb\/109931\/en-us<\/a><\/p>\n<h3>Downloads zu diesem Beitrag<\/h3>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>PDF-basierteHilfe.mdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/4CDDFA71-9092-4503-8FD0-58C9A3D33BCB\/aiu_492.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>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. <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662007,66052007,44000028,44000026],"tags":[],"class_list":["post-55000492","post","type-post","status-publish","format-standard","hentry","category-662007","category-66052007","category-Ergonomie_und_Benutzeroberflaeche","category-Interaktiv"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>PDF-basierte Hilfe - Access im Unternehmen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-im-unternehmen.de\/PDFbasierte_Hilfe\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PDF-basierte Hilfe\" \/>\n<meta property=\"og:description\" content=\"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.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/PDFbasierte_Hilfe\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2021-02-11T21:17:55+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg03.met.vgwort.de\/na\/30101bbae1cb4dd090cc63773f68bf79\" \/>\n<meta name=\"author\" content=\"Andr\u00e9 Minhorst\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andr\u00e9 Minhorst\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"10\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/PDFbasierte_Hilfe\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/PDFbasierte_Hilfe\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"PDF-basierte Hilfe\",\"datePublished\":\"2021-02-11T21:17:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/PDFbasierte_Hilfe\\\/\"},\"wordCount\":1723,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/PDFbasierte_Hilfe\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg03.met.vgwort.de\\\/na\\\/30101bbae1cb4dd090cc63773f68bf79\",\"articleSection\":[\"2007\",\"5\\\/2007\",\"Ergonomie und Benutzeroberfl\u00e4che\",\"Interaktiv\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/PDFbasierte_Hilfe\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/PDFbasierte_Hilfe\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/PDFbasierte_Hilfe\\\/\",\"name\":\"PDF-basierte Hilfe - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/PDFbasierte_Hilfe\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/PDFbasierte_Hilfe\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg03.met.vgwort.de\\\/na\\\/30101bbae1cb4dd090cc63773f68bf79\",\"datePublished\":\"2021-02-11T21:17:55+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/PDFbasierte_Hilfe\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/PDFbasierte_Hilfe\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/PDFbasierte_Hilfe\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg03.met.vgwort.de\\\/na\\\/30101bbae1cb4dd090cc63773f68bf79\",\"contentUrl\":\"http:\\\/\\\/vg03.met.vgwort.de\\\/na\\\/30101bbae1cb4dd090cc63773f68bf79\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/PDFbasierte_Hilfe\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PDF-basierte Hilfe\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"name\":\"Access im Unternehmen\",\"description\":\"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access\",\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/access-im-unternehmen.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\",\"name\":\"Andr\u00e9 Minhorst Verlag\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"contentUrl\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"width\":370,\"height\":111,\"caption\":\"Andr\u00e9 Minhorst Verlag\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"PDF-basierte Hilfe - Access im Unternehmen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/access-im-unternehmen.de\/PDFbasierte_Hilfe\/","og_locale":"de_DE","og_type":"article","og_title":"PDF-basierte Hilfe","og_description":"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.","og_url":"https:\/\/access-im-unternehmen.de\/PDFbasierte_Hilfe\/","og_site_name":"Access im Unternehmen","article_published_time":"2021-02-11T21:17:55+00:00","og_image":[{"url":"http:\/\/vg03.met.vgwort.de\/na\/30101bbae1cb4dd090cc63773f68bf79","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"10\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/PDFbasierte_Hilfe\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/PDFbasierte_Hilfe\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"PDF-basierte Hilfe","datePublished":"2021-02-11T21:17:55+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/PDFbasierte_Hilfe\/"},"wordCount":1723,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/PDFbasierte_Hilfe\/#primaryimage"},"thumbnailUrl":"http:\/\/vg03.met.vgwort.de\/na\/30101bbae1cb4dd090cc63773f68bf79","articleSection":["2007","5\/2007","Ergonomie und Benutzeroberfl\u00e4che","Interaktiv"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/PDFbasierte_Hilfe\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/PDFbasierte_Hilfe\/","url":"https:\/\/access-im-unternehmen.de\/PDFbasierte_Hilfe\/","name":"PDF-basierte Hilfe - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/PDFbasierte_Hilfe\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/PDFbasierte_Hilfe\/#primaryimage"},"thumbnailUrl":"http:\/\/vg03.met.vgwort.de\/na\/30101bbae1cb4dd090cc63773f68bf79","datePublished":"2021-02-11T21:17:55+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/PDFbasierte_Hilfe\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/PDFbasierte_Hilfe\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/PDFbasierte_Hilfe\/#primaryimage","url":"http:\/\/vg03.met.vgwort.de\/na\/30101bbae1cb4dd090cc63773f68bf79","contentUrl":"http:\/\/vg03.met.vgwort.de\/na\/30101bbae1cb4dd090cc63773f68bf79"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/PDFbasierte_Hilfe\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"PDF-basierte Hilfe"}]},{"@type":"WebSite","@id":"https:\/\/access-im-unternehmen.de\/#website","url":"https:\/\/access-im-unternehmen.de\/","name":"Access im Unternehmen","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access","publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/access-im-unternehmen.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/access-im-unternehmen.de\/#organization","name":"Andr\u00e9 Minhorst Verlag","url":"https:\/\/access-im-unternehmen.de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/","url":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","contentUrl":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","width":370,"height":111,"caption":"Andr\u00e9 Minhorst Verlag"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","caption":"Andr\u00e9 Minhorst"}}]}},"_links":{"self":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000492","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/comments?post=55000492"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000492\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000492"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000492"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000492"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}