查找有关Microsoft Access插件开发的信息就像拔掉所有牙齿一样!是的,我找到了这对夫妇写的托管插件文章……但几乎找不到任何非托管外接程序。我确实找到了一篇关于创建非托管.mda项目的很老的文章……我跟随它并创建了一个插件。现在我想要一个自动的方式来部署这个插件。
我已经在VBA中看到过一些工具,比如Rick Fisher的Find and Replace插件工具……但是无法在Access中找到以编程方式完成此操作的方法。我找到了很多关于Excel插件甚至是Excel插件安装的文章。其中一种方法使用VBA,如下所示:
Sub InstallAddIn()
Dim AI As Excel.AddIn
Set AI = Application.AddIns.Add(Filename:="C:\MyAddIn.xla")
AI.Installed = True
End Sub
不幸的是,Access不使用相同的方法。如果有人能给我指出正确的方向,我将不胜感激。如果有人知道有更深入地为Microsoft Access开发插件的书籍或参考资料,那将是非常感谢的,因为大多数选择似乎很少。
发布于 2015-09-02 02:39:05
这只是个坏主意。老实说,我甚至不确定它在当前版本的Windows/Office中的位置。我在注册表项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office,中找到了Word和Excel,但我安装了Access,但在那里看不到Access文件夹。访问外接程序一度可以通过以下注册表项进行访问:
HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE\SOFTWARE\Microsoft\Office\11.0\Access\Menu加载项
This worked for Office 2003 on Win Vista。但每次Microsoft更新Office/Windows时,它都会发生变化,因此尝试以编程方式执行此操作是没有意义的,因为每次更新Office或Windows时,您都必须更新和推出数据库更改。
发布于 2020-06-03 00:53:41
如果您的目标是主注册表配置单元,那么逻辑将为您将注册表项放在正确的位置。例如,您永远不要对Wow6432Node
进行硬编码,因为当32位应用程序尝试使用注册表时,64位windows会自动管理该位置。同样,在office的现代C2R版本中,注册表位置也非常奇怪。你不用担心这个问题。如果您的目标是Access中的主键,那么该键将神奇地出现在正确的位置。
如果你想按用户安装,我建议使用以下位置。
将文件放在此处:
Private Function GetAddinFileName() As String
GetAddinFileName = Environ$("AppData") & "\Microsoft\AddIns\" & CodeProject.Name
End Function
使用此注册表位置:
Private Function GetAddinRegPath() As String
GetAddinRegPath = "HKCU\SOFTWARE\Microsoft\Office\" & _
Application.Version & "\Access\Menu Add-Ins\"
End Function
https://stackoverflow.com/questions/32322408
复制相似问题