1

我需要将某些信息从 Excel 文件导入 Access DB,为此,我使用的是 DAO。

用户从系统中获取 excel 源文件,他不需要直接与之交互。这个源文件有 10 列,我只需要从中检索某些记录。

我正在使用它来检索所有记录:

Set destinationFile = CurrentDb
Set dbtmp = OpenDatabase(sourceFile, False, True, "Excel 8.0;")
DoEvents
Set rs = dbtmp.OpenRecordset("SELECT * FROM [EEX_Avail_Cap_ALL_DEU_D1_S_Y1$A1:J65536]")

当我只想使用 WHERE 子句检索某些记录时,我的问题就出现了。我要应用该子句的字段的名称是“日期 (UCT)”(请记住,用户从另一个系统获取此源文件),我无法让 WHERE 子句对其进行处理。如果我将 WHERE 子句应用于另一个名称没有 ( ) 或空格的字段,那么它可以工作。例子:

Set rs = dbtmp.OpenRecordset("SELECT * FROM [EEX_Avail_Cap_ALL_DEU_D1_S_Y1$A1:J65536] WHERE Other = 12925")

上一条指令将仅检索字段 Other 的值为 12925 的记录数。

谁能告诉我如何使用包含空格和括号的字段名称(即“日期(UCT)”)获得相同的结果?

非常感谢。

奥克塔维奥

4

1 回答 1

0

尝试将字段名称括在方括号中:

SELECT * FROM [EEX_Avail_Cap_ALL_DEU_D1_S_Y1$A1:J65536] WHERE [Date (UCT)] = 12925

或者如果这是我们正在寻找的日期:

SELECT * FROM [EEX_Avail_Cap_ALL_DEU_D1_S_Y1$A1:J65536] WHERE [Date (UCT)] = #02/14/13#;

要使用日期文字,您必须将其括在 # 个字符中,并以 MM/DD/YY 格式写入日期,无论您机器上的任何区域设置如何

于 2013-02-11T14:48:44.023 回答