oledb连接支持超过65536行(从excel工作表更新access)

vc6uscn9  于 2021-08-01  发布在  Java
关注(0)|答案(1)|浏览(354)

我可以使用以下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?
谢谢!

kkih6yb8

kkih6yb81#

如果有人遇到同样的问题:
这里报告的问题是一个在查询范围时发生的已知错误:在excel 2013中使用超出65536行的范围时出现问题
以及
https://chandoo.org/forum/threads/excel-recordset-only-returns-65536-rows-if-you-try-to-pull-data-from-a-range.12492/ )
要绕过它,解决方案是使用“[sheetname$a:w]”而不是“[sheetname$a1:w100000]”查询范围

SELECT * FROM [Excel 12.0;HDR=YES;DATABASE=K:\FolderName\FileName.xlsb].[SheetName$A:W] WHERE Data=#01/01/2018#;

相关问题