我使用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
在过去的两天里,我一直在绞尽脑汁,到处搜寻可能的解决办法,没有运气。
根据我见过的其他帖子,到目前为止我已尝试/验证过的内容:
您可能提供的任何见解或参考将不胜感激!
答案 0 :(得分:2)
我能够解决这个问题!
事实证明,Windows 7和Windows 10有{Microsoft ODBC for Oracle}
驱动程序的不同版本,我认为这是造成错误的原因。我决定使用Oracle提供的驱动程序(对于每台PC都保持不变)而不是微软提供的驱动程序(正如我所发现的那样)。
使用以下代码替换上面的Conn
字符串修复了我的问题。 (此路由需要现有DSN):
Conn =" DRIVER = {Oracle in OraClient11g_home1}; DBQ = DSN_TNSServiceName; UID =用户名; PWD =密码"