在VBA中打开记录集时出错

时间:2017-10-24 19:19:54

标签: excel vba ado recordset jet

我正在使用ADO开发Excel VBA应用程序。我试图打开一个记录集,但如果我的表有超过65536行,则open方法失败。我知道这个数字是旧的Excel行限制,但我使用2016版本和正确的连接字符串。也许它是我项目中引用的一些库,但我无法找出哪一个。

如果我能得到一些帮助,我将非常感激。

错误: 运行时错误' -2147217865(80040e37)':Microsoft Jet数据库引擎找不到对象'我的工作表$ A8:AD70000'。确保对象存在,并且您正确拼写其名称和路径名称。

我的代码(我必须切换工作表名称,以便我不会泄露任何敏感数据):

Sub MySub()

Dim conn    As ADODB.Connection
Dim rs      As ADODB.Recordset
Dim str     As String

Set rs = New ADODB.Recordset
Set conn = New ADODB.Connection

str = "SELECT * FROM [My sheet$A8:AD70000];"

'Opening connection with the workbook
conn.ConnectionTimeout = 90
conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
                        "Data Source=" & Application.ThisWorkbook.FullName & ";" & _
                        "Extended Properties=""Excel 12.0 Macro;HDR=YES;IMEX=1"";"
conn.Open

rs.Open str, conn, adOpenForwardOnly, adLockReadOnly, adCmdText

rs.Close
conn.Close

End Sub

如果我更改"我的表单$ A8:AD70000"到"我的工作表$ A8:AD60000",此代码可以工作。

我使用的图书馆:

Visual Basic For Applications

Microsoft Excel 16.0对象库

Microsoft Forms 2.0对象库

Microsoft Office 16.0对象库

Microsoft ActiveX数据对象6.1库

OLE自动化

非常感谢你的关注。

0 个答案:

没有答案