MS Access Hilfe - Wirrwarr
Vorheriges Thema  Nächstes Thema 

Szenario: Ihre kompilierte Hilfedatei zeigt die Themen und den Inhalt tadellos an, aber der Index und die Suche Tabs sind mit dem MS Access Hilfesystem durcheinander geraten.


Die folgenden Informationen stammen aus dem Microsoft Knowledge Base Q271390


Symptome

Wird ein Microsoft Access Formular mit einer anderen Komprimierten Html Hilfedatei (.chm) verbunden, werden Sie feststellen, dass die Hilfedatei, selbst wenn Sie das richtige Thema anzeigt, dies in einem Access Fenster mit dem Access Index, dem Access Assistenten, und dem Access Titel tut. Dies wird auch dann noch geschehen, wenn sie in der .hhp Datei der anderen Hilfedatei einen eigenen Titel und Index bestimmen.  Wenn Sie allerdings die CHM Datei im Windows Explorer doppelklicken, erscheint diese Hilfedatei, wie erwartet, in Ihrem eigenen Fenster.


ANMERKUNG: Dieses Verhalten tritt nicht bei anderen Hilfedateien auf (*.hlp).


Lösung

Sie können einen Visual Basic Code eingeben, um die CHM Datei in ihrem eigenen Fenster anzuzeigen, wie in folgendem Beispiel demonstriert ist.



ANMERKUNG: Dieses Beispiel zeigt die Hilfedatei in ihrem eigenen Fenster nur dann an, wenn Sie F1 drücken. Beachten Sie auch den Aufsatz: How to Create Context Sensitive Html Hilfe Files (Q242433 MOD2000) und folgen Sie den dortigen Anweisungen, um die Beispielshilfedatei und -datenbank zu generieren. In der selben Datenbank, in der Sie auch das Formular erstellt haben, klicken Sie Module im Datenbank Fenster und dann Neu. Kopieren oder Tippen Sie folgenden Text in das neue Modul ein:


Option Compare Database

Option Explicit


Declare Function HtmlHelp Lib "hhctrl.ocx" Alias "HtmlHelpA" _

        (ByVal hwndCaller As Long, ByVal pszFile As String, _

         ByVal uCommand As Long, ByVal dwData As Long) As Long


Const HH_DISPLAY_TOPIC = &H0

Const HH_SET_WIN_TYPE = &H4

Const HH_GET_WIN_TYPE = &H5

Const HH_GET_WIN_HANDLE = &H6

Const HH_DISPLAY_TEXT_POPUP = &HE

Const HH_HELP_CONTEXT = &HF

Const HH_TP_HELP_CONTEXTMENU = &H10

Const HH_TP_HELP_WM_HELP = &H11


Public Sub Show_Help(HelpFileName As String, MycontextID As Long)

    'A specific topic identified by the variable context-ID is started

in

    'response to this button click.

    Dim hwndHelp As Long


    'The return value is the window handle of the created Hilfe window.

    Select Case MycontextID

        Case Is = 0

            hwndHelp = HtmlHelp(Application.hWndAccessApp,

HelpFileName, _

                       HH_DISPLAY_TOPIC, MycontextID)

        Case Else

            hwndHelp = HtmlHelp(Application.hWndAccessApp,

HelpFileName, _

                       HH_HELP_CONTEXT, MycontextID)

    End Select

End Sub


Public Function HelpEntry()

    'Identify the name of the Hilfe file and a possible context-id.

    Dim FormHelpId As Long

    Dim FormHelpFile As String

    Dim curForm As Form


    'Set the curForm variable to the currently active form.

    Set curForm = Screen.ActiveForm


    'As a default, specify a generic Hilfe file and context-id. Note

that

    'the location of your file may be different.

    FormHelpFile = "C:\MyProject.chm"

    FormHelpId = 1001


    'Check the Hilfe file property of the form. If a Hilfe file exists,

    'assign the name and context-id to the respective Variablen.

    If curForm.HelpFile <> "" Then

        FormHelpFile = curForm.HelpFile

    End If


    'If the Hilfe context-id of the control is not null and greater

than

    'zero, assign the value to the variable.

    If Not IsNull(curForm.ActiveControl.Eigenschaften("HelpcontextId"))

Then

        If curForm.ActiveControl.Eigenschaften("HelpcontextId") > 0 Then

            FormHelpId =

curForm.ActiveControl.Eigenschaften("HelpcontextId")

        End If

    End If


    'Call the function to start the Hilfe file, passing it the name of

the

    'Help file and context-id.

    Show_Help FormHelpFile, FormHelpId

End Function


Speichern Sie das Modul und schließen Sie den Visual Basic Editor.  Im Datenbankfenster klicken Sie auf Makros, und dann auf NEW. Speichern Sie das neue Makro unter dem Namen AutoKeys. Im Menü Ansicht, klicken Sie auf Makronamen. Geben Sie Folgende in die erste Zeile unter Makroname ein: {F1}. Setzen sie die Aktion für {F1} auf RunCode. Als Argument geben Sie folgendes ein:

=HelpEntry()

Speichern Sie und schließen Sie das Makro.

Öffnen Sie das Form1 Formular in der Formularansicht.

Klicken Sie in das zweite Feld und drücken Sie dann F1.

Sie werden sehen, dass die Hilfedatei in einem eigenen Fenster angezeigt wird.