ADODB Excel Connection找不到工作表

时间:2018-07-30 19:14:57

标签: excel vba adodb

我有一个vba函数,该函数使用ADODB连接连接到同一工作簿。但是,它仅适用于某些工作表。如果我尝试查询确实存在的工作表,它将返回错误。但是,其他工作表工作正常。 我的代码如下:

Function runExcelQuery(wk As Workbook, strQuery As String) As ADODB.Recordset
    Dim cnn As ADODB.Connection
    Set cnn = New ADODB.Connection
    Dim rst As ADODB.Recordset
    Set rst = New ADODB.Recordset
    Dim connectionString As String
    'Setup the connection string for accessing Excel
    connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
        "Data Source=" & wk.FullName & _
        ";Extended Properties=""Excel 12.0 Macro;HDR=YES"";"
    cnn.Open connectionString
    cnn.CommandTimeout = 0
    rst.Open strQuery, cnn
    Set runExcelQuery = rst
Exit Function

1 个答案:

答案 0 :(得分:1)

好吧,经过大量的挖掘,我发现问题实际上是工作表上的行数。如果行数超过65k,则必须以不同的方式编写查询才能正常工作。

此帖子:Excel as database - query more than 65536 rows?应该提供更多详细信息。