我有几个excel文件,其中包含90列和大约500行,每个文件都有4行标题,我需要将它们插入到一个访问表中。
我能够通过使用for ...循环来循环所有excel文件和文件中的所有行,但这太慢了。
我在R中使用了mysql,可以使用“LOAD DATA LOCAL INFILE”轻松完成。我可以毫无问题地将xls文件转换为csv文件,但我在Access中找不到类似“LOAD DATA LOCAL INFILE”的任何内容。
有关优化导入流程的任何建议吗?谢谢!
答案 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。