1

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

为此,我为每个字段设置了两个文本框。它们都是可调整大小的(可以缩小/增长)。第一个文本框用于标题,其来源是

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

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

两个问题:

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

1 回答 1

1

这仅适用于打印预览,而不适用于 MS Access 2010 报告或布局视图。您将需要控制上的 Can Shrink 来缩小差距。在 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
于 2013-01-08T13:33:54.933 回答