如何根据字段值在报表中隐藏控件

时间:2019-03-06 17:28:21

标签: vba ms-access

我有一个复选框控件,如果布尔值为false,则需要隐藏该控件。我尝试使用Detail_Format事件无济于事。我将字段值放入另一个复选框,然后尝试从复选框中的值设置可见属性,没有骰子。在下面的图像中,最右边的复选框显示了该字段的值,该字段确定是否应显示其左侧的复选框。我有以下代码

Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
  If Me.chkRequireverify = True Then
  Me.chkVerified.Visible = True
  Else
  Me.chkVerified.Visible = False
  End If
  'Me.chkVerified.Visible = Me.chkRequireverify
End Sub

当我尝试使用Detail_Paint事件时,它错误地告诉我在此事件中我无法更改visible属性。 enter image description here

2 个答案:

答案 0 :(得分:1)

您的代码看起来是正确的,可以简化为简单的代码:

Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
    Me.chkVerified.Visible = Me.chkRequireverify
End Sub

但是,我相信OnFormat事件的事件处理程序只会在打印预览视图而不是 Report 视图中查看报告时进行评估

虽然在{strong> Report 视图中触发了OnPaint事件,但是在格式化报表后,您无法修改某些属性,Visible属性就是这样的属性之一, HeightWidth属性(因此您也无法将复选框缩小为零大小)。

答案 1 :(得分:0)

自从我使用Access和VBA已经有一段时间了,但是我相信您所缺少的是.Value子句中的复选框名称之后的if

尝试一下:If Me.chkRequireverify.Value = True