将Excel文件读入Access数据库的最佳方法

什么是从Access 2007应用程序中读取(只读)Excel文件的“最佳”方法。 我只想循环通过行并将数据放入一个Access表。

我不想手动导入(获取外部数据对话框),而是通过VBA。 用户通过浏览button获取表单,然后指向具有定义的内容/格式的Excel文件。 之后,VBA代码读取数据并将其放入Access数据库。

您可以尝试DoCmd.TransferSpreadsheet方法。

DoCmd.TransferSpreadsheet acImport, , "from_excel","C:\Access\demo.xls", True 

将电子表格数据导入名为from_excel的表中,并假定电子表格的第一行包含字段名称。 有关更多详细信息,请参阅TransferSpreadsheet的访问帮助或在线访问。

如果您想要读取整个电子表格,则可以将Excel电子表格直接导入到Access中。 看到这里或这里 。

您也可以select链接到Excel电子表格,而不是导入它。 这样,Excel电子表格中的任何更改都会反映在链接表中。 但是,您将无法从Access内进行更改。

第三个选项是在Access中编写一些VBA代码来打开一个logging集并读取电子表格。在这个线程中查看KeithG的答案。 你可以这样做来打开VBA中的电子表格:

 Dim xl As Excel.Application Dim xlsht As Excel.Worksheet Dim xlWrkBk As Excel.Workbook Set xl = CreateObject("Excel.Application") Set xlWrkBk = GetObject("H:/ggg.xls") Set xlsht = xlWrkBk.Worksheets(1) 

尝试这样的事情:

 Dim excelApp As Excel.Application Dim workbook As Excel.Workbook Dim worksheet As Excel.Worksheet Set excelApp = CreateObject("Excel.application") Set workbook = excelApp.Open("C:\someFileName.xls") Set worksheet = workbook.Worksheets(1) 

然后循环遍历行和列,从单元格中提取数据,并将其插入到数据库中。 (您可以使用worksheet.cells方法。)尝试在Google上search代码示例。