【发布时间】:2018-03-28 20:37:00
【问题描述】:
我可以使用以下 SQL 命令从 Excel 工作表中选择要插入到 Access 表中的数据:
SELECT * FROM [Excel 12.0;HDR=YES;DATABASE=K:\FolderName\FileName.xlsb].[SheetName$A1:W100000] WHERE Data=#01/01/2018#;
但此方法仅限于旧版本 excel 的 65536 行...这是我得到的错误:
我应该如何调整此代码以允许更多行?
我试过下面的代码,适配使用ACE.OLEDB
SELECT * FROM [Microsoft.ACE.OLEDB.12.0;Excel 12.0;HDR=YES;DATABASE=K:\FolderName\FileName.xlsb].[SheetName$A1:W100000] WHERE Data=#01/01/2018#;
但我收到错误:“找不到可安装的 ISAM”
如何使用相同的括号格式正确指定较新的 ACE.OLEDB?
谢谢!
【问题讨论】:
-
我无法为 xlsb 文件复制该行限制。你能提供更多细节吗?它只返回有限数量的行吗?
-
当我查询的工作表超过 65536 行时,我收到此错误:Error PrintScreen
-
这是一个 VBA 错误,我在您的示例中找不到该范围名称。请提供minimal reproducible example。这不完整,也无法验证。
-
很抱歉,我无法上传自己的图片,因为我在论坛上没有足够的声誉,但在图片中,我的错误消息不是“HighRange”,而是“SheetName” $A1:W100000”。很确定这不是 VBA 错误,因为当我有 65536 行数据时它可以工作,而当我有 65537 行数据时它会崩溃。
-
如果行数超过 2^16 行不是有问题吗?这些数据不应该存储在链接到excel的数据库中吗? stackoverflow.com/questions/24472183/…