Ms access 是否可以向Microsoft Office 2016中打开的任何内容全局添加项目引用?

Ms access 是否可以向Microsoft Office 2016中打开的任何内容全局添加项目引用?,ms-access,vb6,dependencies,ms-access-2016,vba6,Ms Access,Vb6,Dependencies,Ms Access 2016,Vba6,我有一个Microsoft Access应用程序(.mdb),它是旧的、专有的,需要在Microsoft Office 2016的Windows 10上运行 前端(.mde)因为它需要一些旧的.ocx控件,我已经把它缩小到需要一个库(,),但是我不能使用工具->引用向它添加任何东西 我没有数据库的管理员密码。所以我想知道是否有一种方法可以将ocx控件添加到MS Access全局中,以便在所有产品中添加它们 尝试打开时,我得到错误信息: 打开时输入的表达式作为事件属性设置 产生以下错误:已取消打开

我有一个Microsoft Access应用程序(
.mdb
),它是旧的、专有的,需要在Microsoft Office 2016的Windows 10上运行

前端(
.mde
)因为它需要一些旧的
.ocx
控件,我已经把它缩小到需要一个库(,),但是我不能使用
工具->引用
向它添加任何东西

我没有数据库的管理员密码。所以我想知道是否有一种方法可以将ocx控件添加到MS Access全局中,以便在所有产品中添加它们

尝试打开时,我得到错误信息:

打开时输入的表达式作为事件属性设置 产生以下错误:已取消打开表单操作

*表达式可能不会产生宏的名称、用户定义函数的名称或[事件过程]。 *计算函数、事件或宏时可能出现错误

由于位置错误,事件无法运行时发生此错误 无法计算事件逻辑的类型。例如,如果 表单的OnOpen属性设置为
=[Field]
,则会发生此错误 因为宏或事件名称应在事件发生时运行 发生


Access MDE是MDB的编译版本。MDE文件中的VBA项目被编译为特定位且无法更改,因此在32位Office下创建的MDE/ACCDE在64位Office中无法工作,正如在64位Office中创建的MDE/ACCDE在32位Office中无法工作一样

同样,对控件和某些类型库的引用可能需要在更改Windows版本后重新创建MDE,而不管您是否已从32位Office更改为64位Office

例如,Office 2016使用的VBA版本与早期版本的Office不同,因此,如果VBA项目是在早期版本的VBA下编译的,则无法在Office 2016中运行。尽管这与Office 2010有关,但它仍然提供了信息:

发生此问题的原因是Access 2010 SP1使用了更新版本的VBE7.dll文件(版本7.00.1619)

如果您使用的是64位Office,则MDE可能指向公共控制库(该库不适用于64位Office),但您的MDE也可能链接到仅适用于32位使用的类型库(例如,使用VB6构建的类型库)

为了彻底诊断此问题,您确实需要使用用于创建MDE的原始MDB。如果需要从原始MDB重新创建MDE,但需要从有问题的MDE中恢复数据,则仍然可以使用Access中的工具从中导入数据


如果您无法访问原始MDB,则可能需要找到一台具有正确版本的Windows和Office以及任何控件和库的PC,以便继续使用该文件。您可以通过付费购买第三方服务(如(无附属关系)来修复某些代码。

问题的答案是(我相当肯定)否。您是否重新注册了.ocx?运行应用程序时收到的错误消息是什么?如果可以使用安装程序(如Inno安装程序)来安装和设置前端,则可以使用安装程序来执行此操作。通过将旧控件安装到应用程序文件夹中,并在应用程序打开之前让安装程序注册它们。。。可能吧work@Andre我尝试在这里运行方法4中指定的批处理文件:但是注册表项不存在。我还将
MSCOMCTL.OCX
(从旧的Server2003计算机)复制到'C:\windows\syswow64'和文件所在的目录中。相同的错误消息。您复制了它们,但您是否复制了它们?