仅在MS Access 2003报告中打印非空字段

时间:2013-01-08 09:11:58

标签: ms-access

我正在尝试生成一个报告,其源是一个表单,并且只打印非空的字段。

为此,每个字段都有两个文本框。它们都是resizealbe(可以缩小/增长)。 第一个文本框用于标题,其来源是

=IIf([record] Is Null,"","Caption:")

第二个是记录值本身。如果record为null,则两个文本框的值都为“”并且为null,它们不会出现,也不会占用表单中的任何空格。

两个问题:

  1. 这似乎不是最聪明的方法。任何人都有更好的主意吗?
  2. 该报告还包含复选框,此方法仅在我生成报告之前检查/取消选中至少一个复选框时才有效。否则所有字幕都会出现。这很奇怪 - 任何人都知道为什么会这样?

1 个答案:

答案 0 :(得分:1)

这仅适用于“打印预览”,而不适用于MS Access 2010报表或布局视图。您需要在控件上收缩才能缩小间隙。在Access 2010中,“* _Label”是分配给控件标签的默认名称。

Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
Dim ctl As Control

    For Each ctl In Me.Controls
        If ctl.ControlType = acLabel And ctl.Name Like "*_Label" Then
            ctl.Visible = Not IsNull(ctl.Parent)

            ''Bound checkboxes are never null, so hide false
            If ctl.Parent.ControlType = acCheckBox Then
                ctl.Visible = ctl.Parent
                ctl.Parent.Visible = ctl.Parent
            End If

        End If
    Next

End Sub