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上搜索代码示例。