【发布时间】:2020-04-22 00:18:32
【问题描述】:
我正在尝试使用 VBA 将 Excel 连接到我的 Oracle 数据库。
Sub dbConnect()
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Set con = New ADODB.Connection
Set rs = New ADODB.Recordset
strCon = "Driver={Microsoft ODBC for Oracle}; " & _
"CONNECTSTRING=(description=(address=(protocol=tcp)(host=mydb.domain.com)(port=1522))(connect_data=(sid=mydb))); uid=user; pwd=pw;"
con.Open (strCon)
End Sub
我收到一个错误。
[Microsoft][ODBC Driver Manager] 未找到数据源名称且未指定默认驱动程序
我从其他questions 和sources 得知问题很可能是使用了错误的DSN 版本。
但是,我不明白我需要做什么来修复它。
我的 Windows 是 64 位的,当我打开 ODBC 数据源管理器时,我看到以下内容(以及其他内容):
-
名称:Excel 文件,平台:64 位,驱动程序:Microsoft Excel 驱动程序
用户 DSN
-
名称:mydb,平台:32 位,驱动程序:ORA121020_x86 中的 oracle
在系统 DSN 下
我能做些什么来解决它?连接字符串和 DNS 如何相互关联?我应该更改其中一个 DNS 的版本吗?如果是,我该怎么做?
编辑: 连接字符串是从我可以访问数据库的 Oracel SQL Developer 中的数据库连接复制而来的。
【问题讨论】:
-
您的 Excel 是 32 位还是 64 位?
-
64位,不过,我已经解决了问题并回答了我自己的问题
-
没错,驱动程序
Microsoft ODBC for Oracle只存在于 32 位,因此您不能将其用于 64 位的 Excel。
标签: vba oracle odbc connection-string