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

Posted

技术标签:

【中文标题】使用 vba 将 xls/csv 文件插入到 access 2007 表中【英文标题】:insert xls/csv file into access 2007 table using vba 【发布时间】: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”类似的任何内容。

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

【问题讨论】:

【参考方案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 上苦苦挣扎,它一直告诉我找不到该表,但我已经创建了它。 嗨,你能看到我的编辑,让我知道这是否适合你。如果没有,您能否提供您收到的错误信息。

以上是关于使用 vba 将 xls/csv 文件插入到 access 2007 表中的主要内容,如果未能解决你的问题,请参考以下文章

用Java将Excel的xls和xlsx文件转换成csv文件的方法, XLS2CSV, XLSX2CSV

这个简单、易于实现的库可以将HTML表导出为xlsx、xls、csv和txt文件。

使用 VBA 将附件插入到 XML 标记

在 Java 中将 JSON 转换为 XLS/CSV [关闭]

需要帮助使用 VBA 在 excel 中将超链接插入到我计算机上的指定图片

使用VBA将VBA模块从Access项目导出到Excel项目