将特定列从Excel传输到Access Table中的特定列

alp*_*nom 5 excel ms-access access-vba ms-access-2010

我正在尝试将特定列从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
Run Code Online (Sandbox Code Playgroud)

我的数据库的My Student Table可能包含以下字段:

Type Source Phone Email Last First School Major School Grade
Run Code Online (Sandbox Code Playgroud)

我只希望导出标记为:Last,First,School,Grade的excel列,并将它们放在我的学生表中各自的列中.我通过访问查看了VisualBasic中的DoCmd.TransferSpreadSheet,但我不确定这是否是一个解决方案或是否有其他方法.任何帮助将不胜感激,因为它会让我度过太多时间!谢谢!

Par*_*ait 5

考虑直接从Excel工作表查询,因为它们都可以连接到Jet/ACE SQL引擎.下面假设您的工作表数据A1以列标题开头.在VBA DAO/ADO调用中集成以下操作查询,或直接将其置于Access的查询设计(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$]
Run Code Online (Sandbox Code Playgroud)


小智 4

有很多方法可以实现这一点。一种快速方法是将 Excel 电子表格中的所有数据导入到表中(即“MyExcelImportTable”)。然后,您可以创建并运行一个查询,该查询将仅附加您想要的数据。

INSERT INTO MyStudentTable(Last, First, School, Grade)
SELECT Last, First, School, Grade FROM MyExcelImportTable
Run Code Online (Sandbox Code Playgroud)