将Excel中的特定列转移到Access Table中的特定列

我正在尝试从Excel文档中的特定列转移到我的Access数据库中的特定列。 例如,我的Excel表格可能包含以下内容:

Date Last First Gender Month School Grade 10/1 Rode Danny Male Sept. Ro ISD 10 10/2 Dode Manny Male Sept. Ro ISD 11 

而我的学生表我的数据库可能包含字段:

 Type Source Phone Email Last First School Major School Grade 

我只想输出标有“Last,First,School,Grade”的excel列,并把它们放在我学生表的各自专栏中。 我已经通过访问查看了VisualBasic中的DoCmd.TransferSpreadSheet,但我不确定这是一个解决scheme,还是有其他方法。 任何帮助,将不胜感激,因为它会饶恕我太多的时间! 谢谢!

有很多方法可以做到这一点。 一个快捷的方法是将Excel电子表格中的所有数据导入到表格中(即“MyExcelImportTable”)。 然后,您可以创build并运行一个只会追加所需数据的查询。

 INSERT INTO MyStudentTable(Last, First, School, Grade) SELECT Last, First, School, Grade FROM MyExcelImportTable 

考虑直接从Excel工作表查询,因为两者都可以连接到Jet / ACE SQL引擎。 下面假设您的工作表数据以A1列开头。 在VBA DAO / ADO调用中集成下面的动作查询,或直接将它放在Access的查询devise(SQL模式)中。

 INSERT INTO myAccessTable ([Last], [First], [School], [Grade]) SELECT [Last], [First], [School], [Grade] FROM [Excel 12.0 Xml;HDR=Yes;Database=C:\Path\To\Excel\File.xlsx].[SheetName$] 

DoCmd.TransferSpreadSheet将只传输整个工作表。 有几种方法可以传输你需要的东西:

  1. 将所需栏复制到第二张纸上,然后转印该纸张

  2. 将数据保存为CSV,然后导入CSV,您可以在其中指定列