现在,我不再使用链接表,而是以这种格式创建查询:
SELECT * FROM MyTable IN 'S:\NetworkShare\Folder\MyAccessDB.accdb'
这给我带来了使用QueryDef对象控制任何记录集(如果有更改)的路径的优势。无需链接似乎更严格,更不动态的表即可完成此操作。
是否可以通过链接的Excel工作簿来做到这一点?
您QueryDef
可以使用以下格式:
SELECT * FROM [SheetName$Range] IN 'FilePath' [Excel 12.0 Xml;HDR=YES;IMEX=1]
要么
SELECT * FROM [Excel 12.0 Xml;HDR=YES;IMEX=1;ACCDB=YES;DATABASE=FilePath].[SheetName$Range]
如果数据的第一行是标题,则HDR=YES
否则HDR=NO
IMEX
(导入导出模式)可以有3个值 0, 1 and 2
对于.xls
文件格式,请使用直到Excel 2003为止的Excel 97 Excel 8.0
。
对于.xlsx
Excel 2007及更高版本的文件格式,请使用Excel 12.0 Xml
。
有关其他连接选项,请参见此站点。
Range
是可选的,如果您的数据是固定的,则可以是A1:D50
。如果列是固定的,但行不是固定的,则可以使用A1:D
读取直到最后一行。
例如,您的文件路径为C:\User\UserName\Data\File1.xlsx
with Sheet1
,并且第一行包含标题,那么您QueryDef
可以是:
SELECT * FROM [Excel 12.0 Xml;HDR=YES;IMEX=1;ACCDB=YES;DATABASE=C:\User\UserName\Data\File1.xlsx].[Sheet1$]
要么
SELECT * FROM [Sheet1$] IN 'C:\User\UserName\Data\File1.xlsx' [Excel 12.0 Xml;HDR=YES;IMEX=1]
另请参阅此相关问题将Excel电子表格导入MS Access数据库
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句