Dynamisches Hilfe- und Dokumentationssystem

Zusammenfassung

Sie erfahren, wie Sie eine Anwendung mit einem individuellen und durch den Benutzer erweiterbaren Hilfesystem ausstatten.

Techniken

Formulare, Berichte, VBA

Voraussetzungen

Access 97 oder höher

Beispieldateien

Hilfesystem97.mdb, Hilfesystem00.mdb

Dirk Bauer, Düsseldorf

Haben Sie wieder einmal eine Anwendung auf Basis von Access fertig gestellt und verzweifeln nun an der Dokumentation sowie dem beauftragten Hilfesystem Dieser Beitrag zeigt einen Ansatz, mit dem Sie die Hilfe und die Dokumentation einfach in Ihre Anwendung integrieren können. Und das Schönste für den Entwickler ist: Die Anwender können einen nicht unerheblichen Beitrag zu diesem Thema leisten.

Welcher Softwareentwickler kennt das nicht: Nach intensiver Arbeit wird die lang geplante Software endlich fertig gestellt. Was nun noch fehlt, ist eine Dokumentation aller Masken und Eingabemöglichkeiten der Applikation. Diese Dokumentation soll dann je nach Einsatzzweck entweder als Hilfesystem in die Anwendung integriert sein oder als druckbare Referenz übergeben werden. Wenn dann aber einige Formulierungen des Softwareentwicklers nicht exakt die internen Abläufe und Begriffe des Auftraggebers wiedergeben, wird das Thema schnell sehr komplex und aufwändig.

In der letzten Zeit erfährt die Internetseite Wikipedia (http://www.wikipedia.de) immer mehr Aufmerksamkeit.

Wikipedia ist eine freie Enzyklopädie in mehr als 100 Sprachen, zu der jeder mit seinem Wissen beitragen kann. Auf der Internetseite ist es jedem Anwender möglich, neue Texte zu erfassen, bereits vorhandene Texte zu überarbeiten und zu ergänzen sowie Fehler zu korrigieren.

Was bei tausenden von Anwendern klappt, kann nun auch in Ihrer Anwendung zu einem echten Highlight werden.

Die Grafik aus Bild 1 stellt eine übersicht des Lösungsansatzes dar.

Um die nachträgliche Implementierung dieses lernfähigen Hilfekonzeptes in eine bestehende Access-Anwendung so einfach wie möglich zu gestalten, werden alle wesentlichen Routinen und Elemente nur einmal zentral angelegt.

Bild 1: Das Konzept

Bild 2: Entwurf der Tabelle tblHilfesystem

Bild 3: Beispielansicht einer gefüllten Tabelle tblHilfesystem

Die Anwendung besteht aus den folgenden Elementen:

  • Tabelle tblHilfesystem
  • Formular frmHilfesystem
  • Bericht repHilfesystem
  • Modul basHilfesystem
  • Sobald diese zentralen Elemente in der Anwendung vorhanden sind, beschränkt sich der änderungsaufwand in den einzelnen Formularen auf das Einfügen einer einzigen Schaltfläche zum öffnen der Hilfe.

    Im Folgenden erfahren Sie, wie die genannten Elemente erstellt und miteinander verbunden werden.

    Die Tabelle tblHilfesystem dient zur Aufnahme der Formulare, der in den Formularen enthaltenen Steuerelemente sowie der Dokumentation der Elemente.

    Erstellen Sie in Ihrer Datenbank eine neue Tabelle tblHilfesystem mit den Feldern aus Bild 2. Die Textfelder erhalten jeweils die Feldgröße 100.

    Das Feld HilfeID wird als Primärschlüssel (PK) markiert.

    Das Feld Formularname wird später automatisch mit dem Formularnamen gefüllt, den Sie im Datenbankfenster für das jeweilige Formular verwendet haben.

    Das Feld SteuerelementName nimmt alle Namen der Steuerelemente auf, die vom Anwender zur Eingabe von Daten verwendet werden können.

    Das Feld Beschreibung wird von der Laderoutine beim erstmaligen öffnen eines Formulars zunächst mit einer Kopie des Wertes aus dem Feld SteuerelementName vorbelegt.

    Falls Sie etwa in einem Formular ein Feld txtVorname verwenden, können Sie die Bezeichnung in ein anwenderfreundliches Vorname ändern. Das Feld Bezeichnung wird dem Anwender später in der Benutzeroberfläche präsentiert. Das Feld Hilfetext nimmt alle Hinweise und Beschreibungen zu dem jeweiligen Steuerelement auf. Aufgrund der nicht vorhersehbaren Textmengen wird dieses Feld mit dem Datentyp Memo angelegt, da es bei Textfeldern in Access eine Begrenzung auf 255 Zeichen gibt. Bild 3 zeigt exemplarisch die mit einigen Beispieldaten gefüllte Tabelle tblHilfesystem.

    Quellcode 1: Code des Moduls basHilfesystem

    Public Function HilfeAnzeigen()
        ''nimmt eine Referenz auf das aktuell geöffnete Form auf
        Dim frm As Form
        Dim ctrl As Control    
        Dim db As DAO.Database
        Dim rs As DAO.Recordset
        '' Ermitteln des aktiven Formulars
        Set frm = Screen.ActiveForm    
        '' Ermitteln, ob für das aktuelle Form bereits Daten hinterlegt wurden
        Set db = CurrentDb
        Set rs = db.OpenRecordset("SELECT * FROM tblHilfesystem WHERE FormularName = ''" _        + frm.Name + "''")    
        If rs.RecordCount = 0 Then
            '' keine Daten vorhanden, also alle Controls des aktuellen Formulars einlesen
            For Each ctrl In frm.Controls        
                Select Case ctrl.ControlType
                    Case acTextBox, acCommandButton, acCheckBox, acComboBox, acListBox, _                    acOptionButton, acToggleButton, acOptionGroup                    rs.AddNew
                        '' Name des Formulars
                        rs!FormularName = frm.Name
                        '' Name des Steuerelementes (fix)
                        rs!SteuerelementName = ctrl.Name
                        '' Kopie des Wertes "Name des Steuerelementes",                     '' kann vom Anwender editiert werden
                        rs!Beschreibung = ctrl.Name
                        rs.Update
                End Select            
            Next    
        End If
        rs.Close
        db.Close    
        '' öffnen des Hilfeformulars mit dem Verweis auf das aktuelle Formular
        DoCmd.OpenForm FormName:="frmHilfesystem", OpenArgs:=frm.Name, _        WhereCondition:="FormularName=''" + frm.Name + "''"        
    End Function

    Bei der Entwicklung des vorliegenden Lösungsansatzes wurde besonderer Wert auf eine einfache Integration in vorhandene und zukünftige Projekte gelegt. Aus diesem Grund wird der komplette Quellcode in dem zentralen Modul basHilfesystem und in dem unter Punkt 6 beschriebenen Formular frmHilfesystem abgelegt. Wenn Sie die Lösung einmal in einer Anwendung fertig gestellt haben, können Sie eine weitere Datenbank durch den einfachen Import der weiter oben beschriebenen Objekte jederzeit mit dem Hilfesystem ausstatten.

    Dreh- und Angelpunkt der Funktionalität ist die Routine HilfeAnzeigen im Modul basHilfesystem. Diese öffentliche Funktion wird später von jedem Formular aus aufgerufen, welches Zugriff auf das zentrale Hilfesystem hat.

    Die Routine deklariert zunächst die notwendigen Variablen und ermittelt anschließend mit der Methode Screen.ActiveForm das Formular, von dem aus der Aufruf erfolgt.

    Das Recordset-Objekt rs wird anschließend mit allen Datensätzen der Tabelle tblHilfesystem gefüllt, die sich auf das soeben ermittelte Formular beziehen.

    Enthält die Tabelle tblHilfesystem keine passenden Datensätze, durchläuft die Routine in einer For Each-Schleife alle im Formular enthaltenen Steuerelemente, die zur Eingabe oder Auswahl von Daten verwendet werden können.

    Die Variable ctrl enthält jeweils den Verweis auf das entsprechende Steuerelement. Einige Attribute des Steuerelementes werden dann in der Tabelle tblHilfesystem gespeichert:

  • der Formularname im Feld Formularname,
  • der Steuerelementname im Feld Steuerelementname
  • und nochmals der Steuerelementname im Feld Beschreibung.
  • Letzteres Feld kann später vom Anwender überschrieben werden.

    Unabhängig davon, ob die Steuerelemente des Formulars erst jetzt oder bereits vorher in der Tabelle tblHilfesystem gespeichert wurden, wird nun das Formular frmHilfesystem geöffnet und es zeigt die Einträge für die in dem Formular enthaltenen Steuerelemente an – mehr zu diesem Formular weiter unten.

    Der Aufruf des Formulars erfolgt mit der Anweisung DoCmd.OpenForm. Hierbei sind besonders die beiden Argumente OpenArgs und WhereCondition zu beachten. Mit OpenArgs:=frm.Name wird dem zentralen Hilfeformular der Name des derzeit noch aktiven Formulars übergeben.

    Der Parameter WhereCondition:=”FormularName=”” + frm.Name + “”” filtert die Datenherkunft des Formulars – die Tabelle tblHilfesystem.

    Nach der Erstellung der Tabelle und der Funktion zum Bestücken der Tabelle sowie zum Anzeigen des Hilfeformulars erfolgt nun das Design der Benutzerschnittstelle.

    Das Formular frmHilfesystem basiert auf der bereits beschriebenen Tabelle tblHilfesystem. Es zeigt die zum aktuellen Formular verfügbaren Beschreibungen und Hilfetexte an.

    Eigenschaft

    Wert

    Datenherkunft

    tblHilfesystem

    Beschriftung

    Dynamisches Hilfe- und Informationssystem

    Standardansicht

    Endlosformular

    Löschen zulassen

    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