【发布时间】:2013-07-18 16:07:18
【问题描述】:
我正在尝试使用 ODBC 使用 SQL 查询工作表范围中定义的名称。
我已经知道这是可行的:
SELECT * FROM [worksheet1$] -- Query a whole worksheet
SELECT * FROM [worksheet1$A1:C10] -- Query A1:C10 of a worksheet
SELECT * FROM myname -- Query a workbook scoped defined name
请注意,myname 是工作簿范围的,而不是工作表范围的。
我原以为 Excel 公式中的内容也适用于 ODBC 表名:
SELECT * FROM worksheet1!myname -- Query a worksheet scoped defined name
但是这不起作用,我尝试了一些语法变化。
这可能吗?如果可以,使用什么语法?
Delphi 开发人员注意事项:A1:C10 语法会导致 TADOQuery 出现问题,您必须将 ParamCheck 设置为 False 才能使其正常工作。
更新:
我正在使用Microsoft Office 2007 附带的Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb) 版本12.00.6606.1000。
我检查了我使用的 Delphi 数据库组件的行为方式与 Microsoft Query 和 Microsoft Access 2007 相同。
【问题讨论】:
-
有人认为
[worksheet1$myname]不起作用? -
您是仅从 Delphi 中尝试过,还是从其他 MS Office 产品中尝试过?例如 MS Access?
-