我在 Excel 2010 中有一张表格,它从 Oracle 数据库中提取 QueryTables 中的数据,通过 ODBC DSN 连接。
我需要从电子表格中获取数据并使用它来更新同一 Oracle 数据库中的表。我无法从 QueryTable 进行更新,但这是我能够使用 ODBC 的唯一连接方法。
我尝试建立 ADODB 连接,但我得到了一个
'Run-time error '-2147467259 (80004005'):
Automation error
Unspecified error
这是我使用的代码:
Sub Upload_Click()
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
With cn
.Provider = "MSDASQL"
.ConnectionString = "DSN=xcognosD;"
.Open
End With
cn.Close
End Sub
补充说明,我在 Windows 7 上使用 64 位 odbc 驱动程序,连接到 Oracle 11 数据库。
最佳答案
提供程序“MSDASQL”是 Microsoft's OLE DB Provider for ODBC Drivers .它很旧,现在已被弃用。它实际上只适用于没有 OLE DB 提供程序的旧数据库。它也是仅 32 位的,因此它不适用于 64 位提供程序(例如您尝试使用的提供程序)。您最好尝试使用 OLE DB 驱动程序。
MS OLEDB provider for Oracle是“MSDAORA”(应该预先安装在您的机器上)和 Oracle's own OLEDB provider是“OraOLEDB.Oracle”。最好建议您下载最新的 Oracle 提供的提供程序,因为 MSDAORA 也已被弃用。
您需要下载并安装 Oracle 提供程序(如果您还没有)
.Provider = "OraOLEDB.Oracle"
您还需要设置
.ConnectionString
.看看http://www.connectionstrings.com/oracle-provider-for-ole-db-oraoledb/举一些例子。
关于oracle - 使用 ODBC 连接从 Excel VBA 宏更新 Oracle 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18835640/