将 Oracle SQL 连接到 VBA

Connect Oracle SQL to VBA

我可以在 Windows 计算机上将 Python 连接到我的 Oracle SQL 数据库,但奇怪的是我似乎无法从 VBA 上运行它。

供参考,这是 Python 连接代码:

cx_Oracle.connect(f'{self.user}/{self.pwd}@//{self.host}:{self.port}/{self.service_name}')

我曾尝试在我的 VBA 代码中复制这个类似的结构,但我收到一条错误消息。这是我一直在使用的代码:

Sub CallDB_Return_Flexible(stSQL As String, rstStart As Range)

    Dim sqlConn As ADODB.Connection
    Dim rst As ADODB.Recordset
    Dim rtn As Boolean
    Dim cmd As New ADODB.Command
    Dim cs As String

    'On Error Resume Next
    Set sqlConn = New ADODB.Connection

    cs = "Provider=OraOLEDB.Oracle;User ID=myuserID;Password=myPsswd;Data Source=host:port/service_name;"
    sqlConn.ConnectionString = cs
    sqlConn.CommandTimeout = 10000
    sqlConn.Open

我收到以下错误消息: 1) 系统在 OraOLEDB 的消息文件中找不到消息文本 0x80040e0c 的消息文本。 2) 有时,根据我使用的连接迭代(即 TNS 连接),我会收到 TNS 侦听器错误消息。

我目前启用了 ActiveX 6.1 数据对象库。此外,我在一台安装了 64 位 Oracle 客户端的 64 位机器上。我有一个 64 位 Office。我很确定我也有一个 64 位 ADO - 我的 ODAC(如果相同的话)与在线的 64 位版本相同。我在注册表中有一个 ODP.NET 为 2.12,另一个为 4.121。我只有一个 ODP.NET.Managed of 4.12.

这对我来说没有多大意义,我如何在一种语言中可以毫无问题地联系起来,但在另一种语言中我却不能!

我使用早期的 ActiveX 数据库进行了回测 - 这解决了问题。

谢谢!!!!!