我正在使用OutputTo创建报表,但是我的报表包含用于样式和格式设置的VBA代码,当我使用OutputTo函数时,它会忽略我的report-vba代码。
我的代码:
DoCmd.OutputTo acOutputReport, "Report Name", acFormatSNP, "File Path", False
您知道如何自动创建将执行report-vba代码的报告吗?
感谢。
答案 0 :(得分:0)
如果您希望输出看起来与Access中查看的报告完全相同,PDF可能是最好的选择(感谢iDevelop)。但是,根据您的Access版本,您可能无法使用OutputTo创建PDF,它仅在2007版本中可用。另一种方法是构建自己的html输出,这可能非常漂亮。
答案 1 :(得分:0)
我最终删除了用于样式和编辑的VBA代码。
答案 2 :(得分:0)
GD Aducci,
我遇到了同样的问题,并通过删除报告中的VBA解决了这个问题。
在考虑我的成功的同时,我想知道这个问题的解决方案是什么......
请注意,这是一个想法,而不是一段经过验证的代码。
这里是:
如果你标记'在报表中格式化和样式化VBA代码并将其转换为布尔变量的结果,您将能够从执行代码中采样/检索变量。即您将能够检索“渲染状态”#39;该文件。
然后,您可以延迟“输出”的实际执行。通过检查所有标志是否为“真实”来例行程序。如果所有内容都恢复正常,那么格式化和样式化应该完成,因此如果它们没有返回,那么导出为PDF将是可选的,并且#39; true'那么' OutputTo'例程应该进一步延迟。
看来' OutputTo'只是继续执行而不实际确认文档呈现是否实际完成,因此忽略(并与文档中存在的任何VBA编码冲突)。因此,唯一的选择是在将呈现的文档呈现给“输出”之前检查是否所有代码都已执行。命令?
也许编码' OutputTo'作为函数并从渲染文档中引用它??
正如我所说,我还没有对它进行编码 - 但它可能是解决方案吗?
欢呼!