【问题标题】:insert xls/csv file into access 2007 table using vba使用 vba 将 xls/csv 文件插入到 access 2007 表中
【发布时间】:2010-10-06 10:19:12
【问题描述】:

我有几个excel文件,90列500行左右,每个文件有4行表头,需要插入到一张访问表中。

我可以通过使用 for...loop 循环所有 excel 文件和文件中的所有行来进行导入,但这太慢了。

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

对优化导入过程有什么建议吗?谢谢!

【问题讨论】:

    标签: sql ms-access import


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      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。

      【讨论】:

      • 我想我用错了“headers”这个词,我的意思是:我先有3行垃圾,然后是列名,然后是数据。仍在 TransferSpread 上苦苦挣扎,它一直告诉我找不到该表,但我已经创建了它。
      • 嗨,你能看到我的编辑,让我知道这是否适合你。如果没有,您能否提供您收到的错误信息。
      猜你喜欢
      • 2016-11-25
      • 1970-01-01
      • 1970-01-01
      • 2014-04-23
      • 1970-01-01
      • 2016-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多