使用vba将xls / csv文件插入到访问2007表中

时间:2010-10-06 10:19:13

标签: sql ms-access import

我有几个excel文件,其中包含90列和大约500行,每个文件都有4行标题,我需要将它们插入到一个访问表中。

我能够通过使用for ...循环来循环所有excel文件和文件中的所有行,但这太慢了。

我在R中使用了mysql,可以使用“LOAD DATA LOCAL INFILE”轻松完成。我可以毫无问题地将xls文件转换为csv文件,但我在Access中找不到类似“LOAD DATA LOCAL INFILE”的任何内容。

有关优化导入流程的任何建议吗?谢谢!

2 个答案:

答案 0 :(得分:0)

我猜您正在寻找TransferSpreadsheet。 您可以导入数据或链接数据。

答案 1 :(得分:0)

http://msdn.microsoft.com/en-us/library/aa141565%28office.10%29.aspx

如上所述,这就是你要找的东西。

如果4行标题出现问题,您可以运行使用正确的标题创建表,运行删除查询,删除表中的所有内容,然后将不带标题的表导入已存在的表中。 下面的代码是我用来摆脱第一行,你可以简单地编辑它删除4行。这在Excel VBA中使用。在Access模块​​中,只需将Excel设置为对象并运行以下内容即可。

标题代码:

Application.DisplayAlerts = True

    Workbooks.Open Filename:= _
        "Excel File here"
    Rows("1:1").Select
    Selection.Delete Shift:=xlUp
    ActiveWorkbook.Save
    ActiveWorkbook.Close

RE:您的传输电子表格无法正常工作,为什么您的表格已经创建了? 我正在使用如下代码,它正常工作:

DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "TABLENAME", "IMPORT PATH", False

你能告诉我任何你不理解的错误/我会尝试进一步帮助。上面代码末尾的错误是确保你没有使用标题。如果要导入标题行,请将其更改为True。