在Oracle数据库上执行sql query vba时出现未指定的错误

我想使用VBA将数据从Oracle数据库导入Excel。 我尝试了几个选项,我在这里或在官方手册中find,但没有一个似乎为我工作 – 我总是得到相同的未指定的运行时错误

rs.Open strSQL1, con 

要么

 Set rs = con.Execute(strSQL1) 

这取决于我明显使用这两种方法中的哪一种。 这是整个代码:

 Sub data_distribution() 'Setting up the database connection Dim con As ADODB.Connection Dim rs As ADODB.Recordset Dim strSQL1, strInput, strCon As String Set con = New ADODB.Connection Set rs = New ADODB.Recordset strCon = "Driver={Microsoft ODBC for Oracle}; " & _ "CONNECTSTRING=(DESCRIPTION=" & _ "(ADDRESS=(PROTOCOL=TCP)" & _ "(HOST=XXX)(PORT=XXX))" & _ "(CONNECT_DATA=(SERVICE_NAME=XXX))); uid=XXX; pwd=XXX;" '--- Open the above connection string. con.ConnectionString = strCon con.Open 'con.Open strCon '--- Now connection is open and you can use queries to execute them. '--- It will be open till you close the connection 'Definition of parameter strInput = InputBox("Insert car_id") strSQL1 = "select * from car where car_id = " & strInput & "" 'Executing the query 'rs.activeconnection = con 'rs.Open strSQL1, con Set rs = con.Execute(strSQL1) rs.Open strSQL1, con Worksheets("Data").Range("A2").CopyFromRecordset rs 'Closing connection rs.Close con.Close Set con = Nothing Set rs = Nothing 

我想这可能是连接到数据库的问题,但如果我导入/查询数据手册,它工作得很好。 例如使用本手册

Query Oracle database

我必须从Oracle站点下载并configurationODAC for Windows才能使其工作。 我使用tsnames.ora来设置path。 不知道如果我configuration它的权利,但它的作品,所以我想在vba中的连接没有问题,或者是? (这些variables当然是设置为实际值,而不是“XXX”)

查询本身是正确的,并从数据库返回有效的结果。 使用ADOBD所必需的库也被链接在一起。 (Microsoft ActiveX数据对象2.0库)

有一个存在相同错误的问题,但尚未解决:

执行vba脚本时未指定的运行时错误

我猜测它是站/接口特定的(我使用Excel 2010,SQL开发人员)。

虽然已经有一段时间了,但问题仍然没有解决,所以我会回答自己。

问题出在车表中,其中一个属性是键入CLOB(CHARACTER LARGE OBJECT),长度超过2000个字符。 Excel无法应付这种types,查询导致未指定的错误。 如果我列出所有的属性,但这一切,一切顺利。