The Windows API WinHelp() function supports a large number of options. The
HELP_CONTEXTPOPUP option opens a shaded pop-up window for you to display
Help in. This window is similar to the window that opens when you click a
glossary entry (green, underlined text) in the Microsoft Access Help
system.
To implement this feature you need to do the following:
- Create a working Help system by setting the HelpContextID and HelpFile
properties for your forms to a valid Windows Help file.
- Redirect the F1 key to call a user-defined function that opens the
Help file using the HELP_CONTEXTPOPUP option.
Note that jumping or branching to other Help topics from the pop-up Help
window is not supported by the methods discussed in this article.
The following steps describe how to create the user-defined function to
open the pop-up Help window and how to redirect the F1 key:
- Create a module and type the following lines in the Declarations section:
NOTE: You may have some Microsoft Windows API functions defined in an existing Microsoft Access library; therefore, your declarations may be
duplicates. If you receive a duplicate procedure name error message,
remove or comment out the declarations statement in your code.
Declare Function WinHelp Lib "user32" Alias "WinHelpA" _
(ByVal hwnd As Long, _
ByVal lpHelpFile As String, _
ByVal wCommand As Long, _
ByVal dwData As Long) As Long
Public Const HELP_CONTEXTPOPUP = &H8&
- Type the following procedure:
Function Help32() As Boolean
On Local Error GoTo Help32_Err
Dim Cid As Long, Result As Long
On Error Resume Next
' Get the HelpContextID of the active control.
' The error is 2474 if no control is active.
Cid = Screen.ActiveControl.HelpContextId
If Cid = 0 Then
' There is no control context ID, so check the form and get
' the HelpContextID of the active form.
' The error is 2475 if no form is active.
Cid = Screen.ActiveForm.HelpContextId
End If
' If there is a context ID, open the Help file with context.
' Specify your custom Help file for the second argument.
If Cid > 0 And Cid < 32767 Then
Result = WinHelp(Application.hWndAccessApp, "C:\Myhelp.Hlp", _
HELP_CONTEXTPOPUP, Cid)
Help32 = True
End If
Help32_End:
Exit Function
Help32_Err:
MsgBox Err.Description
Resume Help32_End
End Function
- Create the following new macro named AutoKeys to redirect the F1 key:
Macro Name Condition Action
--------------------------------
{F1} RunCode
AutoKeys Action
-------------------------
RunCode
Function Name: Help32()<BR/>