gpt4 book ai didi

vba - ADODB 连接的记录集不完整

转载 作者:行者123 更新时间:2023-12-04 20:12:04 28 4
gpt4 key购买 nike

我试图从包含 80,000 多行的工作表中检索数据并将这些值打印到工作表中,但是当我创建记录集并查看其记录计数时,它只包含 16,492 条记录。

我是 ADODB 连接的新手,所以我对问题所在感到困惑。

这是我的代码:

Sub testing()
On Error Resume Next

Const adOpenStatic = 3
Const adLockOptimistic = 3
Const adCmdText = &H1

Dim objCon As New ADODB.Connection
Dim recSet As ADODB.Recordset

Set objCon = CreateObject("ADODB.Connection")
Set recSet = CreateObject("ADODB.Recordset")

objCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\Users\nschneider\Desktop\Data Pulls_FY08 to Present_Companies 10, 20, 30, 40.xlsx;" & _
"Extended Properties=""Excel 8.0;HDR=Yes;"";"

recSet.Open "Select * FROM [Data$]", _
objCon, adOpenStatic, adLockOptimistic, adCmdText

If Not recSet.EOF Then
Sheets(2).Range("A2").CopyFromRecordset recSet
End If

' Do Until objRecordset.EOF
' Wscript.Echo objRecordset.Fields.Item("Name"), _
' objRecordset.Fields.Item("Number")
' objRecordset.MoveNext
'
' Loop
End Sub

我已经注释掉了循环,因为这是我从以前的论坛中看到的。不确定这是否是我需要的。

最佳答案

您正在使用 Excel 97-2003 .xls 文件的连接字符串(特别是显示“Excel 8.0”的部分)。当时 Excel 工作表的行数限制为 65K 行。然后,连接字符串将应用于 Excel 2007 及更高版本的 .xlsx 文件,其中每张工作表的最大行数超过 100 万行。

较旧的连接字符串适用于较新的 .xlsx 文件,但当工作表上的行数超过旧的 65K 最大值时,我遇到了问题。将 .xlsx 文件的连接字符串更新为正确的字符串,看看是否有帮助:

objCon.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=C:\Users\nschneider\Desktop\Data Pulls_FY08 to Present_Companies 10, 20, 30, 40.xlsx;" & _
"Extended Properties=""Excel 12.0 Xml;HDR=Yes"";"

(我还删除了“HDR=Yes”之后不必要的 ;)

关于vba - ADODB 连接的记录集不完整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29832428/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com