Events 每次预览/打印报告时将触发什么事件?
我想计算textbox报表控件的值,并根据其值隐藏或显示它,这可以通过VBA轻松实现:Events 每次预览/打印报告时将触发什么事件?,events,ms-access,report,vba,ms-access-2010,Events,Ms Access,Report,Vba,Ms Access 2010,我想计算textbox报表控件的值,并根据其值隐藏或显示它,这可以通过VBA轻松实现: If Me.Fixed.Value = 0 Then Me.Fixed.Visible = False End If 这很好,但是我使用的作为报告记录源的查询允许一次打印一系列记录(每页/报告1条),并且我希望为每页/报告运行上述代码。我不确定该把代码放在哪里,这样每张唱片都能按规则播放。目前,如果我选择了8条记录,只有第一条记录符合我的要求,当我在打印预览屏幕中浏览其他记录时,报告的格式在应该更改
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
这在打印预览中有效,但在报告视图中无效。可能有一种方法可以让它与Report视图一起工作,但我从不使用此视图
该声明可以简化为:
Me.Fixed.Visible = Not (Me.Fixed = 0)
请注意,
Visible
属性在Detail\u Paint()
事件中不可用,您需要使用该事件在报告视图中应用条件格式。(如果您试图做一些花哨的事情,例如模拟超链接以获得深入效果,则可能需要这样做。)
解决方法是将文本框的前景色
设置为与背景色
相等。虽然文本在技术上仍然存在,但它不会在显示的报告上“显示”,因此模拟了隐藏字段
Private Sub Detail_Paint()
' Check for even numbers
If (txtID Mod 2 = 0) Then
txtID.ForeColor = vbBlack
Else
' Set to back color to simulate hidden or transparent.
' (Assuming we are using a Normal BackStyle)
txtID.ForeColor = txtID.BackColor
End If
End Sub
示例输出:
谢谢你,安迪。DOH