Events 从DoCmd OpenReport打印报告时,在Microsoft Access中触发事件

Events 从DoCmd OpenReport打印报告时,在Microsoft Access中触发事件,events,ms-access,report,Events,Ms Access,Report,我正在尝试对正在使用DoCmd OpenReport运行的报表运行脚本。我不是在预览报告,而是直接把它送到打印机。这样做时,似乎不会触发报告的任何事件。报告打印时是否会触发OnLoad之类的事件?打开事件将发生:我遇到了类似的问题,通过首先打开隐藏的报告解决了这个问题: DoCmd.OpenReport "ReportName", acViewReport, , strCriteria, acHidden 然后将其发送到打印机并关闭报表。这当然适用于表单,但我需要知道如何在从VBA脚本打印报表

我正在尝试对正在使用DoCmd OpenReport运行的报表运行脚本。我不是在预览报告,而是直接把它送到打印机。这样做时,似乎不会触发报告的任何事件。报告打印时是否会触发OnLoad之类的事件?

打开事件将发生:

我遇到了类似的问题,通过首先打开隐藏的报告解决了这个问题:

DoCmd.OpenReport "ReportName", acViewReport, , strCriteria, acHidden

然后将其发送到打印机并关闭报表。

这当然适用于表单,但我需要知道如何在从VBA脚本打印报表时触发事件。如果报表以预览模式打开,则会触发诸如onLoad之类的事件,但如果报表是在不查看报表窗体的情况下打印的,则不会触发此类事件。@mackeyka打开事件适用于报表和窗体。这在链接中的“应用于”中有说明。这是真的,但我的问题是,当使用以下命令从VBA脚本打印报告时:DoCmd.OpenReport stDocName、acNormal、stLinkCriteria,报告实际上没有在屏幕上打开(例如在打印预览中)首先,通常会发生的事件都没有被触发。请尝试。将
MsgBox“Hello”
置于打开事件中,然后运行VBA将其打开,消息框将弹出。另外,我也不清楚当您从VBA运行时,为什么要在报告中包含代码。您可以在打印行之后分支到所需的任何代码。请尝试。OnOpen可用于从VBA进行打印预览,但若报告直接转到打印机,则不会触发。报告非常复杂,有许多子窗体。根据报告是针对组A还是组B,其中一个部分会有所不同。我要运行的代码将根据报告针对的组在该位置选择要打印的子窗体。报告上有一个字段,用于标识报告所针对的组,报告上的代码使用此字段确定要打印的子窗体。整个数据库都很大,我不想在这个报告应该做的时候再做一个报告。这个报告的一个版本适合我。将DoCmd.OpenReport stDocName、acNormal、stLinkCriteria更改为DoCmd.OpenReport stDocName、acViewReport、stLinkCriteria。但无法使用acHidden,因为它打印的是另一个打开的表单,而不是刚刚打开的报表。因此,报告会在屏幕上闪烁,但用户将不得不忍受一段时间,直到我能找出它为什么打印错误的东西。