首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用VBA以编程方式安装Microsoft Access外接程序

使用VBA以编程方式安装Microsoft Access外接程序
EN

Stack Overflow用户
提问于 2015-09-01 09:53:41
回答 2查看 1.2K关注 0票数 4

查找有关Microsoft Access插件开发的信息就像拔掉所有牙齿一样!是的,我找到了这对夫妇写的托管插件文章……但几乎找不到任何非托管外接程序。我确实找到了一篇关于创建非托管.mda项目的很老的文章……我跟随它并创建了一个插件。现在我想要一个自动的方式来部署这个插件。

我已经在VBA中看到过一些工具,比如Rick Fisher的Find and Replace插件工具……但是无法在Access中找到以编程方式完成此操作的方法。我找到了很多关于Excel插件甚至是Excel插件安装的文章。其中一种方法使用VBA,如下所示:

代码语言:javascript
运行
复制
Sub InstallAddIn()
    Dim AI As Excel.AddIn
    Set AI = Application.AddIns.Add(Filename:="C:\MyAddIn.xla")
    AI.Installed = True 
End Sub

不幸的是,Access不使用相同的方法。如果有人能给我指出正确的方向,我将不胜感激。如果有人知道有更深入地为Microsoft Access开发插件的书籍或参考资料,那将是非常感谢的,因为大多数选择似乎很少。

EN

回答 2

Stack Overflow用户

发布于 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时,您都必须更新和推出数据库更改。

票数 1
EN

Stack Overflow用户

发布于 2020-06-03 00:53:41

如果您的目标是主注册表配置单元,那么逻辑将为您将注册表项放在正确的位置。例如,您永远不要对Wow6432Node进行硬编码,因为当32位应用程序尝试使用注册表时,64位windows会自动管理该位置。同样,在office的现代C2R版本中,注册表位置也非常奇怪。你不用担心这个问题。如果您的目标是Access中的主键,那么该键将神奇地出现在正确的位置。

如果你想按用户安装,我建议使用以下位置。

将文件放在此处:

代码语言:javascript
运行
复制
Private Function GetAddinFileName() As String
    GetAddinFileName = Environ$("AppData") & "\Microsoft\AddIns\" & CodeProject.Name
End Function

使用此注册表位置:

代码语言:javascript
运行
复制
Private Function GetAddinRegPath() As String    
    GetAddinRegPath = "HKCU\SOFTWARE\Microsoft\Office\" & _
        Application.Version & "\Access\Menu Add-Ins\"    
End Function
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32322408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档