【发布时间】:2017-09-01 04:12:07
【问题描述】:
我们最近将 access 2007 db 升级到 2016,更新后我们的 Outlook 功能停止工作。函数如下:
Private Function GetZeusConnection() As ADODB.Connection
Dim con As New ADODB.Connection
con.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Y:\path\to\database.accdb;Persist Security Info=False;"
Set GetZeusConnection = con
Outlook 似乎无法使用当前库打开 Access 2016。有人有想法吗?
编辑:在引用中它说 Access 16.0 对象库,我们不能手动添加 12.0 库(即使机器上可以使用 access 2007,尽管安装屏幕很小,这似乎也改变了对象库每次运行时的前景)
编辑 2:当 2007 是最后打开的版本时,它确实有效,将引用更改为 12.0
编辑 3:我们已经尝试将字符串中的版本号更改为 16.0,但没有成功
【问题讨论】:
-
您的代码有效。有任何错误信息吗?调试时,在哪条指令上失败或挂起?
-
没有错误信息显示,标准的windows“程序没有响应”消息框弹出加载栏,屏幕变灰。需要注意的是,在引用中它说的是 Access 16.0 对象库,我们不能手动添加 12.0 库(即使机器上可以使用 access 2007)
-
顺便说一句,它挂在 con.open 命令上
-
只是为了确保:您在 Outlook 中的 VBA 项目仍然有对
Mircosoft ActiveX Data Objects x.x的引用,对吗?您需要使用ADODB.Connection对象 -
我对 Access 2016 没有任何经验,但阅读一些 comments on MSDN 你可能必须使用
provider=Microsoft.ACE.OLEDB.16.0