我想自动将Access查询的结果导出到Excel。我的环境是:
该查询包括一个最多可包含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字段不会被截断,而是在末尾导出一些垃圾字符。