Ms access 将帮助文件与VBA对象浏览器中的库相关联

Ms access 将帮助文件与VBA对象浏览器中的库相关联,ms-access,vba,Ms Access,Vba,我在一个Access项目中引用了Microsoft脚本运行时(scrrun.dll)。如果我在VBA中打开对象浏览器(按F2键)并从“库”下拉列表中选择“脚本”,它将显示脚本库的所有属性、函数等。如果我选择其中一个函数,然后单击“帮助”按钮(带黄色问号),将打开一个名为“Microsoft Visual Basic帮助”的帮助窗口 它表现为无法找到此库的帮助文件。我可以在以下位置手动查找计算机上的帮助文件:“C:\Program Files(x86)\Common Files\microsoft

我在一个Access项目中引用了Microsoft脚本运行时(scrrun.dll)。如果我在VBA中打开对象浏览器(按F2键)并从“库”下拉列表中选择“脚本”,它将显示脚本库的所有属性、函数等。如果我选择其中一个函数,然后单击“帮助”按钮(带黄色问号),将打开一个名为“Microsoft Visual Basic帮助”的帮助窗口

它表现为无法找到此库的帮助文件。我可以在以下位置手动查找计算机上的帮助文件:“C:\Program Files(x86)\Common Files\microsoft shared\VBA\VBA6\1033\VBLR6.CHM”。(注意:我有64位Win 7,因此在Program Files文件夹名称中有“(x86)”

我尝试将帮助文件复制到以下位置,但没有成功: “C:\Windows\Help\VBLR6.CHM” “C:\Windows\SysWOW64\VBLR6.CHM”(我相信SysWOW64文件夹是与C:\Windows\System32等效的Win7 64位文件夹)

我对其他引用库也有同样的问题,所以我正在寻找某种通用的解决方案。我希望有某种方法可以指定特定引用的帮助文件的位置,或者类似的其他内容。

将VBLR6.CHM复制到“C:\Program Files(x86)\Microsoft Office\Office10\1033\VBENLR98.CHM”

这是此特定案例的简短答案…以下是如何到达该位置的方法,这可能有助于获取相关的其他帮助文件:

  • 下载进程监视器(当前托管在此处:或执行以下操作)
  • 使用以下筛选器运行进程监视器:“进程名称”为“MSOHelp.exe”“include”
  • 在VBA中打开对象浏览器
  • 选择库(本例中为脚本)
  • 选择库中的任何函数、属性或事件,然后单击黄色问号(这将打开一个标题为Microsoft Visual Basic帮助的空窗口)
  • 返回到Process Monitor并一直滚动到列表底部;确保显示路径和结果列
  • 列表中应该有几十个“未找到路径”和“未找到名称”结果。对于这些结果中的每一个,都应该有一个MSOHelp查找帮助文件的对应路径。选择其中任何一个并创建具有该路径名的文件。我选择创建一个帮助文件的副本,将其从原始位置复制到新位置,并将其重命名以匹配MSOHelp所寻找的内容

  • 我最好的猜测是,scrrun.dll包含帮助文件的名称,多年来,该dll保持不变,但帮助文件被重命名、修改等。

    不确定为什么需要自动链接帮助文件。除了基本的3 Access引用之外,我从不使用任何引用,因此我从未自动获得帮助文件。当我需要了解其中一个库时,我可以创建一个引用以使用对象浏览器,但这对于我来说已经足够好了。虽然VBLR6在脚本对象方面确实有帮助,但我不知道有任何地方指出了这一点。事实上,当引用指向DLL而不是OLB文件时,我不知道Access如何知道要使用哪个帮助文件。只是在浏览注册表后的后续行动:如果搜索DAO360.CHM,您会发现一些神秘的ClassID,它们似乎在Access中为DAO的帮助文件创建了连接。看起来有一个带有“vUpAVJ”的REG_MULT_SZ值(8A$!!!谢谢你的帮助。你的评论让我在越来越低的层次上思考,直到我找到了解决方案。太棒了!我想知道MS是如何让文件名/路径不同步的?在我的系统上,VBLR6.CHM存储在%common files%\Microsoft Shared\VBA\VBA6\1033中,这似乎是一个非常合理的位置,但是脚本运行时似乎希望它位于标准Windows帮助文件的位置(%system32%、Windows\help、%OfficeVersion%\1033等等)。