MS Access VBA: 打开报表时,报表所依赖的查询完成后会触发什么事件?

MS Access VBA: When opening a report, what event is triggered once the query that the report depends on has been completed?

我有一个依赖于查询的报告。报告显示正确,但我试图让标签的可见性取决于查询中的 yes/no 字段。

以下会产生 错误 2424,表示找不到该字段

Private Sub Report_Open(Cancel As Integer)
lblUppersIncluded.Visible = ysnUppersIncluded
End Sub 

或者:

Private Sub Report_Activate()
lblUppersIncluded.Visible = ysnUppersIncluded
End Sub

给出错误 2427 表达式没有值。 Report_Load 同样如此。

但是,在报表上创建的执行同一行代码的命令框可以正确执行。

我怀疑所有报告事件都是在查询 运行 之前触发的,因此这些字段尚未填充。查询完成后是否有可以使用的事件?

我发现如果使用 Detail_Format 事件,依赖于查询字段的代码将起作用。此事件在打印预览视图中触发,但在报表视图中不触发。

有时,解决此类问题的最佳方法是将标签转换为文本框并使用条件格式。如果条件格式无法满足您的格式需求,那么您可以查看代码。

特别是对于标签是否可见,您甚至不需要条件格式。转换为文本框并使用:

=IIF([My condition for visible label],"My Label text:","")

作为其控制源。