gpt4 book ai didi

vba - ADOBC 连接仅在 Windows 10 机器上失败

转载 作者:行者123 更新时间:2023-12-01 13:46:05 24 4
gpt4 key购买 nike

我刚接触 Access/VB(2 个月前开始),所以请多多包涵。

我继承了一个数据库,该数据库具有与 Oracle 的 ADODB 连接,该数据库在经过测试的 Windows 7 机器(总共 5 台)上运行完美,但在 Windows 10 机器(总共 2 台)上测试时出现以下错误. (所有机器都运行 Access 2010)。

Run-time Error '3709': The connection cannot be used to perform this operation. It is either closed or invalid in this context.

代码如下:

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

在过去的两天里,我一直在绞尽脑汁,到处寻找可能的解决方案,但没有成功。

到目前为止,这是我根据我看到的其他帖子尝试/验证的内容:

  1. 验证 Oracle 客户端已安装
  2. 确保 Path 变量包含必要的路径
  3. 验证引用和文件路径在所有机器上都相同

如果您能提供任何见解或引用资料,我们将不胜感激!

最佳答案

我能够想出一个解决办法!

事实证明,Windows 7 和 Windows 10 具有不同版本的 {Microsoft ODBC for Oracle} 驱动程序,我认为这是导致错误的原因。我决定使用 Oracle 提供的驱动程序(每台 PC 都相同)而不是 Microsoft 提供的驱动程序(据我发现,它有所不同)。

用以下代码替换上面的 Conn 字符串解决了我的问题。 (此路由需要现有的 DSN):

Conn = "DRIVER={Oracle in OraClient11g_home1}; Dbq=DSN_TNSServiceName; uid=username; pwd=password"

关于vba - ADOBC 连接仅在 Windows 10 机器上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36066385/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com