我可以使用以下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?
谢谢!
1条答案
按热度按时间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]”查询范围