使用 VBA 将表单另存为报表
Posted
技术标签:
【中文标题】使用 VBA 将表单另存为报表【英文标题】:Save a Form as a Report using VBA 【发布时间】:2020-07-03 05:29:39 【问题描述】:在 MS Access 中,可以使用“将对象另存为”功能(Office 按钮 -> 另存为 -> 将对象另存为“将当前数据库对象另存为新对象”)将表单转换为报表。
我希望使用 VBA 获得相同的功能,但在我看来,以下相关的 DoCmd 方法都不适合 CopyObject、OutputTo、Save、TransferDatabase。
我找不到任何有用的信息,除了 blog post,其中使用 SendKeys 语句提供了代码示例,但它似乎不起作用。
有什么建议吗?
【问题讨论】:
【参考方案1】:无法使用 VBA 将表单转换为报表。即使使用 Sendkeys(确实应该避免,因为错误的应用程序可能会获取按键)也不是一种有效的方法,因为某些控件无法正确转换。
相反,您应该从头开始设计一个带有所需标题/排序/分组的报表 - 它看起来会好得多。
问候,
【讨论】:
【参考方案2】:感谢 MajP 在 access-programmers 论坛post 上的一些提示,我找到了一种适合我需要的方法,尽管它使用了 sendkey 功能:
strFormName = "formname"
strReportName = "reportname"
DoCmd.SelectObject acForm, strFormName, True
SendKeys strReportName & "~"
RunCommand acCmdSaveAsReport
strFormName 必须包含要保存为报表的表单的名称,其名称必须包含在 strReportName 中。
【讨论】:
以上是关于使用 VBA 将表单另存为报表的主要内容,如果未能解决你的问题,请参考以下文章
如何使用以下 VBA 代码在生成“另存为”对话框并导出 Access 查询的表单上创建命令按钮?