2012-07-11 197 views
-1

我在Excel中有一列Sheet 1。我需要通过匹配Access & Excel中的列标题将数据导入到Access中。同样,我想根据Access中的列(字段)将多个Excel文件导入到将数据附加到现有表中。从Excel导入数据到Access

这甚至可能吗?如果是这样,我该如何去做呢?

+1

这个问题似乎更像是一个“给我代码”的请求,而不是一个问题。而在最初的版本中,这就是它显然是:“请建议我一些代码”。我认为现在不应该重新开放。 – HansUp 2012-07-12 08:32:50

+1

@HansUp我并不反对提问者可能有不良的历史,我说的是SO是一个wiki,并且作为一个维基的问题,这很有用。这是一个近来出现的问题,这是最简单的问题,因此它是最具可读性的问题。我相信这个问题应该保留下来,并且可以保存为社区wiki。 – Fionnuala 2012-07-12 09:34:47

回答

5

的最简单的方法是使用DoCmd.TransferSpreadsheet到Excel工作表或范围链接:

DoCmd.TransferSpreadsheet acLink, acSpreadsheetTypeExcel8, _ 
"Atable", "z:\docs\test.xls", True, "A1:A15" 

您然后具有能够与通常的MS访问SQL被操纵的表。

您也可以参考一个Excel工作表 - [Sheet1$] - 或范围的查询:

INSERT INTO Table1 (ADate) 
SELECT SomeDate FROM [Excel 8.0;HDR=YES;DATABASE=Z:\Docs\Test.xls].[Sheet1$a1:a4] 

或者使用一个命名的范围,需要注意:Excel 8.0也适用于2007年类型的文件。

INSERT INTO Table1 
SELECT * FROM [Excel 8.0;HDR=YES;DATABASE=Z:\Docs\Test.xlsm].[XLTable] 

其中XLTable是命名范围。