使用DAO和WHERE子句将数据从Excel导入Access

使用DAO和WHERE子句将数据从Excel导入Access,excel,vba,ms-access,import,import-from-excel,Excel,Vba,Ms Access,Import,Import From Excel,我需要将某些信息从Excel文件导入Access数据库,为此,我使用DAO 用户从系统中获取excel源文件,不需要直接与之交互。这个源文件有10列,我只需要从中检索某些记录 我正在使用此选项检索所有记录: Set destinationFile = CurrentDb Set dbtmp = OpenDatabase(sourceFile, False, True, "Excel 8.0;") DoEvents Set rs = dbtmp.OpenRecordset("SELECT * FR

我需要将某些信息从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”,如何才能获得相同的结果

多谢各位


Octavio

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

从[EEX_Avail_Cap_ALL_DEU D1_S_Y1$A1:J65536]中选择*其中[Date UCT]=12925

或者如果是我们要找的日期:

从[EEX_Avail_Cap_ALL_DEU D1_S_Y1$A1:J65536]中选择*其中[Date UCT]=2013年2月14日


要使用日期文字,您必须用字符将其括起来,并以MM/DD/YY格式写入日期,而不管您机器上的任何区域设置

Hi barrowc,我已经尝试了您的建议,但我没有得到任何记录。此外,[Date UCT]字段应该保存日期。我做了一个测试,将该字段上的所有值都改为数字,但仍然得到一个空rs。还有其他想法吗?谢谢=12925部分直接来自问题。我修改了答案,以显示日期比较