代码之家  ›  专栏  ›  技术社区  ›  to StackOverflow

如何自动从access2007导出到excel2003

  •  0
  • to StackOverflow  · 技术社区  · 14 年前

    我想自动将Access查询的结果导出到Excel。我的环境是:

    • 访问2007
    • 导出应为Excel 2003格式。

    该查询包括一个最多可包含512个字符的备注列。

    • 在Access中运行查询,然后将结果网格复制/粘贴到Excel中。这工作正常,但需要手动步骤。

    • 运行一些VBA代码,使用导出查询文档传送电子表格具体如下:

      DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "MyQuery", "MyFile.xls"

    我遇到的问题是VBA代码将Memo列截断为255个字符。

    理想情况下,我希望将Access中的数据“推送”到Excel,而不是相反,即我没有尝试从Excel中使用“导入外部数据”。

    编辑

    针对目前的评论和回应:

    是否可以导出包含备注字段的表?

    我没有尝试导出表,因为这样做对我没有任何帮助。

    ... 截短备忘录的一件事,比如在备忘录上排序

    查询确实包含ORDER BY子句,因此 已排序(并且必须排序)。但它没有在备忘录栏上排序。

    使用MyMemo,可以避免像这样的处理。

    查询中的memo列已经过处理,并使用类似于“Left(Replace(MemoColumn,“…”,“…”),512)”的语句被截断为512个字符。所以使用Left(…)似乎没有帮助。

    尝试使用copyfromrecordset函数实现自动化

    我试过用Excel自动化范围.CopyFromRecordSet. 在这种情况下,较长的Memo字段不会被截断,而是在末尾导出一些垃圾字符。

    1 回复  |  直到 14 年前
        1
  •  0
  •   Tony Toews    14 年前

    尝试使用copyfromrecordset函数实现自动化。我不记得还有255个字符的问题。 Modules: Transferring Records to Excel with Automation

    一旦代码运行了,我建议使用后期绑定删除Excel引用。 Late Binding in Microsoft Access