【发布时间】:2023-04-04 06:29:01
【问题描述】:
到目前为止,我有以下代码
Dim strConnect
Dim adoConnection
Dim adoRecordset
Dim strSQL
Dim strResults
strSQL = "SELECT COUNT(distinct party_id) FROM apps.per_all_people_f"
strConnect = "Provider=OraOLEDB.Oracle.1; Password=pwd; Persist Security Info=True; User ID=user; Data Source=source; Extended Properties="""
Set adoConnection = CreateObject("ADODB.Connection")
adoConnection.Open strConnect
Set adoRecordset = CreateObject("ADODB.Recordset")
adoRecordset.ActiveConnection = adoConnection
adoRecordset.Source = strSQL
adoRecordset.Open
Do Until adoRecordset.EOF
strResults = adoRecordset.Fields(0).Value
msgbox strResults
adoRecordset.MoveNext
Loop
adoRecordset.Close
adoConnection.Close
帮助我更正上面需要连接到 Oracle DB 并根据输出数据处理一些步骤的代码。
我收到以下错误消息。
参数类型错误、超出可接受范围或与另一个参数冲突。第 9 行来源:ADODB.Connection
【问题讨论】:
-
字符串
strConnect看起来引用错误。它的末尾有 2 个尾随双引号。这是故意的吗?您始终可以使用chr(43)代替"来帮助使代码可读。 -
尝试删除扩展属性="" 我收到不同的消息。 “找不到提供程序。它可能没有正确安装。”代码:800A07A。但我已经安装了 ODAC 客户端并配置了 OraTNA 文件。在 Excel 中配置可刷新工作表时,相同的连接也有效。有什么想法吗?
-
怎么样
"Provider=OraOLEDB.Oracle.1; Password=pwd; Persist Security Info=True; User ID=user; Data Source=source; Extended Properties=" & chr(34) & chr(34) -
如果您安装了 ODAC,请注意架构。您安装的是 32 位还是 64 位 ODAC?而且,当你双击你的脚本时,它是在 32 位还是 64 位脚本主机上运行的?在 64 位主机上运行的脚本不会看到已注册的 32 位库。
-
strConnect这一行的User ID为什么有空格?是不是笔误?