ADODB Excel 连接找不到工作表
ADODB Excel Connection cannot find a Worksheet
我有一个 vba 函数,它使用 ADODB 连接连接到同一个工作簿。但是,它仅适用于某些工作表。如果我尝试查询确实存在的工作表,则会 returns 出错。但是,其他工作表工作正常。
我的代码如下:
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
好吧,经过大量挖掘,我发现问题实际上是 sheet 上的行数。如果它大于 65k 行,则必须以不同的方式编写查询才能工作。
这个 Post: Excel as database - query more than 65536 rows? 应该提供更多细节。
我有一个 vba 函数,它使用 ADODB 连接连接到同一个工作簿。但是,它仅适用于某些工作表。如果我尝试查询确实存在的工作表,则会 returns 出错。但是,其他工作表工作正常。 我的代码如下:
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
好吧,经过大量挖掘,我发现问题实际上是 sheet 上的行数。如果它大于 65k 行,则必须以不同的方式编写查询才能工作。
这个 Post: Excel as database - query more than 65536 rows? 应该提供更多细节。