我需要将某些信息从Excel文件导入Access数据库,为了做到这一点,我正在使用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子句仅检索某些记录时,我的问题出现了。我想要应用该子句的字段的名称是“Date(UCT)”(请记住,用户从另一个系统获取此源文件)并且我无法获取WHERE子句来处理它。如果我将WHERE子句应用于另一个字段,其名称没有()或空格,那么它的工作原理。例如:
Set rs = dbtmp.OpenRecordset("SELECT * FROM [EEX_Avail_Cap_ALL_DEU_D1_S_Y1$A1:J65536] WHERE Other = 12925")
上一条指令只会检索字段Other的值为12925的记录数。
有人可以告诉我如何才能获得相同的结果,但是字段名称有空格和括号,即'Date(UCT)'?
非常感谢。
奥克塔维奥
答案 0 :(得分: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格式写日期,无论您机器上的任何区域设置如何