将12本Excel工作手册的72个工作表链接到MSACCESS

我有12个月的快照报告。 事实certificate,昂贵的人力资源数据库不是为了保留历史数据,而是刚刚用最新的数据编写了大量的员工数据。

我可以使用每月的快照重build和查询这个logging,但是导入到访问中有很多东西,必须有一个自动化。

我有6张名为PermPStartersStartersPStartersTLeaversTLeavers 。 我有12个工作簿,分别是10_AUG_16等等(实际上有67个工作簿,但步骤很less)

我已经把所有的Excel文件放到一个文件夹中。 ( h:\reports\cleaned\

所以我需要把每张纸都放到自己的桌子上。 (有一万名员工,所以我把它全部放在一张桌子上)

这些表在导入时需要某种命名约定。

因此,如果我将[Sheet Name] [Directory]所有.xlsm文件的[Sheet Name]链接到[Sheet Name]我可以从源表格名称和文件名称中得到它的名称吗?

如果我可以做到这一点,那么我可以只更改6次我猜的工作表参数。

我只有MS OFFICE和一台小巧的i5笔记本电脑。

任何帮助,意见,指导将不胜感激。

谢谢

在MS Access的DoCmd.TransferSpreadsheet方法中,只要给表名称参数一个不存在的数据库表名,该方法应该在数据库中创build这样一个表。 如果你指定一个现有的表,方法将尝试追加到当前的结构:

 newtblName = WorbookNameVar & WorksheetNameVar DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12Xml, _ newtblName, WorkbookPathVar, True, WorbookSheetVar & "!" 

但正如评论中提到的那样,考虑使用一个表格,并提供一些区分差异的指标,例如工作簿/工作表名称。 首先导入一个Excel文件,然后为SourceLocation添加一个列(Table / Design View)作为短文本数据types。 然后循环所有其他Excel文件:

 ' ACCESS METHOD DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12Xml, _ ExcelImportTable, WorbookPathVar, True, WorbookSheetVar & "!" ' SQL ACTION QUERY CurrentDb.Execute "UPDATE TABLE ExcelImportTable SET SourceLocation = '" _ & WorbookNameVar & WorksheetNameVar & "'" 

请注意:这一切都假定Excel数据是以表格格式从行A1开始的列标题。