Access調用CHM格式的幫助文件(綁定到ACCESS中)

2002-06-22 15:58:00
田野-Office交流網
原創
2693
是否可以把CHM格式的幫助文件綁定到ACCESS中,比如,單擊一按鈕,或者菜單,就打開幫助文件.請指教!

zhuyiwen
羅斯文中用的 .HLP 幫助文件,開髮版代碼庫中有調用 .CHM 的完整代碼。

tmtony
現抄現賣啦
Function ShowHelpAPI() As Boolean
    
    ' This procedure is used by the Show Me button on various Developer
    ' Solutions toolbars. It uses the WinHelp API function so that the
    ' Show Me Help button will provide context-sensitive Help regardless
    ' of the current state of the object. Make sure that the Help file is
    ' in the same directory as the Developer Solutions database.
    
    Dim lnghWnd As Long, strHelpFile As String, lngContext As Long
    Dim lngRetVal As Long, obj As Object
    
    On Error Resume Next
    Const conHelpContext = &H1
    Set obj = Screen.ActiveForm
    
    If Err = 2475 Then
        ' Active object is not a form.
        ' Reset Err and test for Report object.
        Err = 0
        Set obj = Screen.ActiveReport
            If Err = 2476 Then
                ' Current object is not a form or a report.
                MsgBox "Select a form or report before you ask for help."
                ShowHelpAPI = False
                Exit Function
            End If
    End If
    
    With obj
        ' Get the current object's hWnd, HelpFile, and HelpContextID properties.
        lnghWnd = .hWnd
        strHelpFile = .HelpFile
        lngContext = .HelpContextId
    End With
    
    lngRetVal = WinHelp(lnghWnd, strHelpFile, conHelpContext, lngContext)
    ShowHelpAPI = True
End Function


zhuyiwen

Declare Function WinHelp Lib "user32" Alias "WinHelpA" (ByVal Hwnd As Long, _
       ByVal lpHelpFile As String, ByVal wCommand As Long, _
       ByVal dwData As Any) 

Function ShowHelpAPI() As Boolean
    
    ' This procedure is used by the Show Me button on various Developer
    ' Solutions toolbars. It uses the WinHelp API function so that the
    ' Show Me Help button will provide context-sensitive Help regardless
    ' of the current state of the object. Make sure that the Help file is
    ' in the same directory as the Developer Solutions database.
    
    Dim lnghWnd As Long, strHelpFile As String, lngContext As Long
    Dim lngRetVal As Long, obj As Object
    
    On Error Resume Next
    Const conHelpContext = &H1
    Set obj = Screen.ActiveForm
    
    If Err = 2475 Then
        ' Active object is not a form.
        ' Reset Err and test for Report object.
        Err = 0
        Set obj = Screen.ActiveReport
            If Err = 2476 Then
                ' Current object is not a form or a report.
                MsgBox "Select a form or report before you ask for help."
                ShowHelpAPI = False
                Exit Function
            End If
    End If
    
    With obj
        ' Get the current object's hWnd, HelpFile, and HelpContextID properties.
        lnghWnd = .hWnd
        strHelpFile = .HelpFile
        lngContext = .HelpContextId
    End With
    
    lngRetVal = WinHelp(lnghWnd, strHelpFile, conHelpContext, lngContext)
    ShowHelpAPI = True
End Function

這是開髮版代碼庫中的範例,使用.HLP。

zhuyiwen
TMTONY比我快!

tmtony
沒你的提示,我一時還找不到:), 再説, 你的正確些啦,我還沒加定義啦

zhuyiwen 
Sub AddHelpMenu()
    Dim cbrBar          As CommandBar
    Dim ctlCBarControl  As CommandBarControl
    
    ' Set a reference to the Help menu.
    Set cbrBar = CommandBars!Help
    
    ' If the My Help command already exists, delete it.
    For Each ctlCBarControl In cbrBar.Controls
        If ctlCBarControl.Caption = "&My Help" Then
            cbrBar.Controls("My Help").Delete
        End If
    Next
    
    ' Create a new CommandBarControl object on the Help menu
    ' and add a reference to it.
    Set ctlCBarControl = cbrBar.Controls.Add(Type:=msoControlButton)
    
    ' Set properties of the new command to display context-sensitive
    ' pop-up help. Set OnAction to call DisplayHelp procedure to display
    ' a help topic when clicked.
    With ctlCBarControl
        .Caption = "&My Help"
        .BeginGroup = True
        .FaceId = 0
        .OnAction = "DisplayHelpXL"
        .HelpFile = "sample.chm"
        .HelpContextID = 1000
        .Visible = True
    End With
End Sub



Sub DisplayHelpXL()
    Application.Help Currentproject.Path & "\sample.chm", 2001
End Sub
 
Declare Function HtmlHelp Lib "hhctrl.ocx" Alias "HtmlHelpA" _
    (ByVal hwndCaller As Long, _
    ByVal pszFile As String, _
    ByVal uCommand As HH_COMMAND, _
    dwData As Any) As Long
  
zhuyiwen
田野,夠不夠?

你怎麽請我喫飯?[em26]

田野
夠,夠,我 GO,GO,開溜!:)

binbow_z
用SHELL調用HH.exe文件打開.chm文件

田野
binbow_Z,您的方法很好,再問一下,HH.EXE有沒有定位的蔘數,就是説打開chm文件時根據不衕情況定位於某一位置。

 
(開髮文檔_幫助製作-相關文章技巧鏈接):
如何製作CHM幫助文件及使用
在VB中調用CHM 幫助的幾種方法
分享