我有一个依赖于查询的报告。报表显示正确,但我尝试让标签的可见性取决于查询中的是/否字段。
下面会产生错误 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事件,依赖于查询字段的代码将起作用。此事件在"打印预览"视图中触发,但不在报表视图中触发。