【发布时间】:2015-11-04 16:41:17
【问题描述】:
我的只有一台 PC 的用户遇到了“未指定的错误”。
运行时错误“-2147467259 (80004005)”:
未指明的错误
我正在运行以下 VBA 代码来打开与位于网络共享驱动器中的 Access 数据库的连接。但是代码在尝试运行.Open 语句时会引发错误。
我认为这是驱动程序问题,并在用户的 PC 中安装了 Access 2007 数据库引擎,并将 Provider 替换为“Microsoft.ACE.OLEDB.12.0”,但它不起作用。
代码:
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim retVal As Boolean
Dim strSQL As String
retVal = False
On Error GoTo CatchError
Set cn = New ADODB.Connection
With cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.Properties("Jet OLEDB:Database Password") = Initialize.GetDBPwd 'returns pass
.Open Initialize.GetDbConnectionString 'returns the network DB path
End With
【问题讨论】:
-
Windows中是否映射了“网络共享驱动器”?共享是 Windows / SAMBA 共享吗?您是否对此共享具有适当的权限,并且这些权限是在您映射共享时输入的?您是否尝试使用本地计算机上的 Access 数据库(例如 C:\tmp)打开它?
-
Initialize.GetDbConnectionString 返回什么?
-
当您手动尝试从用户 PC 打开该文件时会发生什么?可能是windows用户没有访问权限。路径是 UNC 还是驱动器号?
-
如果是 Windows 7,网络驱动器存在一个已知问题,据我所知,有时驱动器仍在刷新,文件被“另一个用户”锁定,这在 2015 年仍未修复。
-
如果问题只发生在“一台 PC”上,那么这台 PC 本身可能是问题的根源。您是否查看过该特定 PC 上的 Windows Event Log 以获取有关问题所在的更多信息?这台 PC 是否特定?这台 PC 与您的代码工作的另一台 PC 有何不同?
标签: excel vba ms-access adodb oledbconnection