Custom Help file is displayed in Access Help window

Article translations Article translations
Article ID: 275117 - View products that this article applies to.
This article was previously published under Q275117
Advanced: Requires expert coding, interoperability, and multiuser skills.

This article applies to a Microsoft Access database (.mdb) and to a Microsoft Access project (.adp).

For a Microsoft Office 2000 Developer version of this article, see 271390.
Expand all | Collapse all

On This Page


In Microsoft Access, when you display a custom Compressed HTML (.chm) Help file, the Help content is displayed in the Access Help window, along with the default Access index, the Access Answer Wizard, and the Access title. This behavior occurs even if you specify your own title and index within the Help file.


To work around this issue, create a macro to run the Compressed HTML Help file in its own window. To do this, follow these steps:
  1. See the following article in the Microsoft Knowledge Base:
    296231 How to create context-sensitive HTML Help files in Office XP Developer
    Then, follow the instructions in the article to create the sample Help file and database.
  2. In the same database in which you created the form, click Modules in the Database window, and then click New.
  3. Type or paste the following code in the new module:
    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_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 Help 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 Help 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 Help file and context-id. Note that
        'the location of your file may be different.
        FormHelpFile = "C:\MyProject.chm"
        FormHelpId = 1001
        'Check the Help file property of the form. If a Help file exists,
        'assign the name and context-id to the respective variables.
        If curForm.HelpFile <> "" Then
            FormHelpFile = curForm.HelpFile
        End If
        'If the Help context-id of the control is not null and greater than
        'zero, assign the value to the variable.
        If Not IsNull(Screen.ActiveControl.Properties("HelpcontextId")) Then
            If Screen.ActiveControl.Properties("HelpcontextId") > 0 Then
                FormHelpId = Screen.ActiveControl.Properties("HelpcontextId")
            End If
        End If
        'Call the function to start the Help file, passing it the name of the
        'Help file and context-id.
        Show_Help FormHelpFile, FormHelpId
    End Function
  4. Save the module as Module1, and then quit the Visual Basic Editor.
  5. In the Database window, click Macros, and then click New.
  6. On the View menu, click Macro Names.
  7. Type the following in the first line in the Macro Name column:
  8. Set the Action field for {F1} to RunCode.
  9. For the Function Name argument, type the following:
  10. Save your new macro as AutoKeys and close it.
  11. In the Database window, click Forms, and then open Form1 in Form view.
  12. Click the second field, and then press F1. Note that the custom Help file is displayed in its own window.


Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.


Steps to reproduce the problem

  1. See the following article in the Microsoft Knowledge Base:
    296231 How to create context-sensitive HTML Help files in Office XP Developer
    Follow the instructions in the article to create the sample database and the custom Help file.
  2. Open Form1 in Form view.
  3. Click the second field, and then press F1. Note that the sample Help topic for the second text box is unexpectedly displayed in the Access Help window with the Access title, index, and Answer Wizard.


Article ID: 275117 - Last Review: July 25, 2007 - Revision: 3.0
  • Microsoft Office XP Developer Edition
  • Microsoft Access 2002 Standard Edition
kbbug kbnofix kbpdwizard KB275117

Give Feedback


Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from