0

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

  • 访问 2007
  • Access 2003 格式的数据库
  • 导出应为 Excel 2003 格式。

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

到目前为止,我已经尝试了以下方法:

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

  • 运行一些使用 DoCmd.TransferSpreadsheet 导出查询的 VBA 代码,如下所示:

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

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

在没有这种截断的情况下以编程方式导出到 Excel 的最简单方法是什么?

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

编辑

针对迄今为止的评论和回复:

您可以导出包含备注字段的表吗?

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

...截断备忘录的事情之一,比如对其进行排序

该查询确实包含一个 ORDER BY 子句,因此对结果进行了排序(并且必须对其进行排序)。但它没有在备忘录列上排序。

这可以通过使用 Left(MyMemo, 4096) 之类的东西处理备忘录来避免。

查询中的备注列已使用“Left(Replace(MemoColumn, "...", "..."), 512)" 之类的内容进行处理并截断为 512 个字符。所以使用 Left(...) 似乎没有帮助。

尝试使用 copyfromrecordset 功能自动化

我尝试使用带有 Range.CopyFromRecordSet 的 Excel 自动化。在这种情况下,较长的备注字段不会被截断,而是在最后导出一些乱码。

4

1 回答 1

0

尝试使用 copyfromrecordset 功能自动化。虽然我不记得 255 个字符的任何问题,但限制可能仍然存在。 模块:使用自动化将记录传输到 Excel

运行代码后,我建议您使用后期绑定删除 Excel 引用。 Microsoft Access 中的后期绑定

于 2010-04-15T19:07:33.130 回答