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

Best way to read an Excel file into an Access database

从Access 2007应用程序中读取(只是读取)Excel文件的"最佳"方式是什么。我只想循环遍历行并将数据放入Access表中。

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


您可以尝试使用DoCmd.TransferSpreadsheet方法。

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

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


如果要阅读整个电子表格,可以将Excel电子表格直接导入Access。请参见此处或此处。

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

第三个选择是在Access中编写一些VBA代码以打开一个记录集并读入电子表格。在此线程中,请参见KeithG的答案。您可以执行以下操作在VBA中打开电子表格:

1
2
3
4
5
6
7
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)


尝试这样的事情:

1
2
3
4
5
6
7
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上搜索代码示例。