events - 每次预览/打印报表时会触发什么事件?

标签 events ms-access report vba ms-access-2010

我想评估文本框报表控件的值,并根据其值隐藏或显示它,我可以使用 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/

相关文章:

javascript - 静态图像的图像加载

sql - 如何等待执行控制从删除表中返回?

ms-access - MS Access 2007 VBA DAO.Relation 对象神秘地未设置。这是怎么回事?

python - 解析Excel报告

reporting-services - 报告管理器 - "Select all"作为某些链接报告的默认值

c# - 对象发送者和 EventArgs

javascript - 正确使用 Vue Watch

actionscript-3 - ActionScript - 全局自定义事件?

ms-access - 如何使用 twilio 从 MS Access 发送消息?

mysql - ORDER BY 子句中的 IF 语句