将Oracle SQL连接到VBA

问题描述 投票:0回答:1

我能够将Python连接到Windows计算机上的Oracle SQL DB,但奇怪的是,我似乎无法从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位办公室。我可以肯定我也有一个64位ADO-我的ODAC(如果相同)与在线64位版本相同。我在注册表中有一个ODP.NET 2.12,另一个是4.121。我只有ODP.NET.Managed为4.12。

这对我来说没有多大意义,我如何用一种语言可以毫无问题地建立联系,而用另一种语言则不能!

vba oracle cx-oracle oraoledb
1个回答
0
投票

我使用较早的ActiveX数据库进行了回测-解决了它。

谢谢!!!!!

© www.soinside.com 2019 - 2024. All rights reserved.