Office365 64位VBA连接IBM AS400适配提供程序咨询
故障原因
原连接字符串使用的IBMDA400.DataSource.1是IBM i 连接组件提供的32位OLE DB提供程序。64位版本的Office进程只能加载同架构(64位)的OLE DB/ODBC驱动,原有32位IBM驱动无法被64位Office识别,因此触发「找不到提供程序」错误。
64位环境可用的提供程序方案
- 方案1:使用64位原生IBM OLE DB提供程序(兼容性最优)
卸载原有32位旧版IBM i Access/Client Access组件,安装64位版本的IBM i Access Client Solutions(ACS) Windows应用包,安装时勾选OLE DB Provider组件。安装完成后无需修改原有连接字符串的Provider字段,保持Provider=IBMDA400.DataSource.1即可正常连接,和原32位环境的代码逻辑完全兼容。 - 方案2:MSDASQL桥接64位ODBC驱动(备选)
如果已安装64位版本的IBM i Access ODBC驱动,可使用Windows自带的OLE DB-ODBC桥接提供程序连接,修改后的连接字符串示例如下:
使用该方案前需确认:在64位ODBC数据源管理器(路径为str_400Connect = "Provider=MSDASQL;Driver={IBM i Access ODBC Driver};System=" & Trim(aDSN) & ";Database=SYS01;Uid=" & Trim(aUID) & ";Pwd=" & Trim(aPassword) & ";"C:\Windows\System32\odbcad32.exe)的「驱动」页签中,能看到已安装的IBM i Access ODBC Driver条目。
注意事项
- 64位Windows系统下64位进程无法加载32位DLL组件,不存在直接让64位Office识别32位IBM驱动的兼容绕过方法。
- 若设备上同时存在32位、64位需要连接IBM i的程序,可并行安装32位、64位版本的ACS应用包,两个版本互不冲突,分别为对应架构的进程提供驱动支持。
- 版本号低于7.1的旧版IBM Client Access组件没有官方64位发行版,无法在64位Office环境下使用,必须升级到新版ACS组件。
内容的提问来源于stack exchange,提问作者lok1234
相关产品推荐
相关产品推荐

