【发布时间】:2016-07-04 03:29:31
【问题描述】:
我对使用 Access/VB(2 个月前开始)还很陌生,所以请耐心等待。
我继承了一个与 Oracle 有 ADODB 连接的数据库,该数据库在已测试的 Windows 7 机器上完美运行(共 5 台),但在 Windows 10 机器上测试时出现以下错误(共 2 台) . (所有机器都运行 Access 2010)。
运行时错误“3709”:连接不能用于执行此操作。在这种情况下,它要么是关闭的,要么是无效的。
代码如下:
Public Function PTMNConnect() As ADODB.Connection
Dim Cn As ADODB.Connection
Dim Conn As String
Conn = "DRIVER={Microsoft ODBC for Oracle};CONNECTSTRING=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)" & _
"(HOST=host)(PORT=port))(CONNECT_DATA=(SERVICE_NAME=PROD)));uid=username;pwd=password"
Set Cn = New ADODB.Connection
With Cn
.ConnectionString = Conn
.CursorLocation = adUseServer
.Open '**Errors Out on Open**
End With
Set PTMNConnect = Cn
End Function
在过去的两天里,我一直在绞尽脑汁,到处寻找可能的解决方案,但没有成功。
这是我迄今为止根据我看到的其他帖子尝试/验证的内容:
- 已验证是否安装了 Oracle 客户端
- 确保 Path 变量包含必要的路径
- 已验证所有计算机上的引用和文件路径都相同
您可以提供的任何见解或参考将不胜感激!
【问题讨论】:
-
当您遇到该错误时,向我们展示
Conn的值可能会很有用。您提到了一个“路径变量”。它在哪里以及如何使用?如果省略CursorLocation,你会得到不同的结果吗? -
@HansUp 我已经为“Conn”添加了值。我尝试省略“CursorLocation”,它在 Windows 7 机器上运行良好,但在 Windows 10 机器上导致了同样的错误。安装 Oracle 客户端时,它会在环境变量的路径变量中添加两条 Oracle 文件夹路径。缺少这些路径会导致其中一台 Windows 7 机器出现错误,该错误在添加路径后已修复。
标签: vba ms-access windows-7 windows-10 adodb