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



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

下面会产生错误 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也是如此。

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

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

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

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

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

作为其控制源。

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

最新更新