在Excel VBA中运行SQL查询时出现运行时错误

时间:2017-07-14 13:40:15

标签: excel-vba odbc vba excel

我在oracle DB上运行SQL查询,它只是一个简单的select * from table查询。这适用于900行和5列的小表。但是当我在一个有30列和95,000行的表上尝试时,我得到以下错误。我尝试增加MaxRecords,但无济于事。

Error 代码

Public Const sConnect As String = "Driver={Microsoft ODBC for
 Oracle};Server=server;Uid=user;Pwd=password"
Sub GetData1()
  i = 0
  Sheets(1).Range("a1:ao20000").ClearContents

  Dim rsConnection As ADODB.Connection
  Dim rsRecordset As ADODB.Recordset
  Dim sQuery As String

  sQuery = "select * from trade"

  Set rsConnection = New ADODB.Connection
  Set rsRecordset = New ADODB.Recordset

  rsConnection.ConnectionString = sConnect
  rsConnection.Open
  rsRecordset.MaxRecords = 1048575

  Set rsRecordset = rsConnection.Execute(sQuery)

  Worksheets(1).Range("A2").CopyFromRecordset rsRecordset

  For i = 0 To rsRecordset.Fields.Count - 1
    Worksheets("Sheet1").Cells(1, i + 1).Value = rsRecordset.Fields(i).Name
  Next i

  rsConnection.Close
  Set rsConnection = Nothing
  Set rsRecordset = Nothing
End Sub

此致 添

1 个答案:

答案 0 :(得分:1)

经过多一点挖掘后,我找到了答案。它涉及TIMESTAMP(6)的数据库字段。我必须重做我的数据库查询来执行to_char(timestamp_field),一切正常。

由于 添