我想自动将Access查询的结果导出到Excel。我的环境是:
该查询包括一个最多可包含512个字符的备注列。
到目前为止,我已经尝试了以下内容:
在Access中运行查询,然后将结果网格复制/粘贴到Excel中。这很好,但需要手动步骤。
运行一些使用DoCmd.TransferSpreadsheet导出查询的VBA代码,如下所示:
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "MyQuery", "MyFile.xls"
我遇到的问题是VBA代码会将Memo列截断为255个字符。
在没有这种截断的情况下以编程方式导出到Excel的最简单方法是什么?
理想情况下,我想将数据从Access“推送”到Excel而不是相反,即我没有尝试在Excel中使用“导入外部数据”。
修改
回应迄今为止的评论和回应:
您可以导出包含备注字段的表吗?
我还没有尝试导出表格,因为无论如何能够帮助我。
...截断备忘录的一件事,比如在它上面进行排序
查询确实包含ORDER BY子句,因此结果 排序(并且必须排序)。但它没有在备忘录栏中排序。
通过使用Left(MyMemo,4096)等处理备忘录可以避免这种情况。
查询中的备注列已经过处理,并使用“Left(Replace(MemoColumn,”......,“”“),512)”“(例如,”删除(MemoColumn,“......”,“...”),“512”)将其截断为512个字符。因此使用Left(...)似乎没有帮助。
尝试使用copyfromrecordset功能自动化
我尝试过使用Excel自动化和Range.CopyFromRecordSet。在这种情况下,较长的备注字段不会被截断,而是在末尾导出一些垃圾字符。
答案 0 :(得分:0)
尝试使用copyfromrecordset功能自动执行。虽然我不记得255个字符的任何问题,但可能仍然存在限制。 Modules: Transferring Records to Excel with Automation
运行代码后,我建议使用后期绑定删除Excel引用。 Late Binding in Microsoft Access