我想评估文本框报表控件的值,并根据其值隐藏或显示它,我可以使用 VBA 轻松实现:
If Me.Fixed.Value = 0 Then
Me.Fixed.Visible = False
End If
效果很好,但是我用作报表记录源的查询允许一次打印所有记录(每页/报表 1 个),并且我希望为每个页面/报表运行上述代码。我不确定将代码放在哪里以便每条记录都按规则播放。目前,如果我选择 8 条记录的范围,则只有第一个记录符合我的要求,当我在打印预览屏幕中浏览其他记录时,报告的格式在应该更改时保持不变。
我尝试过以下事件:
报告:
- 当前
- 加载中
- 关于获得焦点
- 打开时
- 激活时
- 在页面上
部分:
- 关于格式
- 打印
- 在绘画上
我可以将 VBA 放在哪里,以便每次滚动/导航该报告返回的记录范围时我的代码都会运行?
最佳答案
您还需要将 Visible
属性设置回 True,否则它将保持不可见。
我正在使用“详细信息”部分的“格式”事件:
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
If Me.Fixed = 0 Then
Me.Fixed.Visible = False
Else
Me.Fixed.Visible = True
End If
End Sub
这适用于打印预览,但不适用于报告 View 。可能有一种方法可以使其与报告 View 一起使用,但我从不使用此 View 。
该语句可以简化:
Me.Fixed.Visible = Not (Me.Fixed = 0)
关于events - 每次预览/打印报表时会触发什么事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17704530/