如果附件为零,如何在报表上隐藏附件(图像)对象?

时间:2019-04-29 22:21:55

标签: ms-access access-vba ms-access-reports attachment-field

我正在为MS Access数据库构建报告。该报告包含一个子窗体,该子窗体列出了有关项目的信息,包括保存图像的附件字段。

如果没有附件,则对象仍将使用行空间,从而导致报告中有很多不必要的空白空间。

我需要将对象调整为0x0的大小,并且如果没有图像,还需要调整子报表的“详细信息”部分的大小。

  1. 我发现我可以使用以下命令来确定是否存在图像,但不知道该语句放入哪个Event或将需要其他语法:

    Me.attachPhoto.AttachmentCount
    
  2. 我找到了以下示例代码,用于调整附件/图像对象的大小,我认为可以对其进行修改以使其正常工作,但不知道将其放置在哪个事件中:

    Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
        If IsNull(Me!Image20) Then
            Me!Image20.Visible = False
            Me!Image20.Height = 0
            Me!Image20.Width = 0
        ElseIf Not IsNull(Me!Image20) Then
            Me!Image20.Visible = True
            Me!Image20.Height = 2880
            Me!Image20.Width = 2880
        End If
    End Sub 
    
  3. 假设我能弄清楚代码的放置位置并使代码能够正常工作,我仍然不知道如何更改子报表“ Details”部分的大小。

1 个答案:

答案 0 :(得分:0)

几件事:

首先,您不需要执行此操作的代码。

当然,问题在于图像控件没有内置的可以增长的,可以缩小设置的

但是,大多数控件都可以,尤其是子报表。

实际上,我不仅建议对图片使用以下技巧,而且经常建议您使用一组“控件”来缩小它们(如果没有值)。问题在于报表呈现系统可以很容易地折叠“一个”框,而一行上的多个控件通常不能折叠,因为有了多个控件,Access无法弄清楚如何向上移动多个控件。

更糟的是,图片控件无法缩小。但是文本框以及子报告的确缩小了。

鉴于以上内容?

将提供的“项目”或组或图片移动到子报告中。

尝试以下方法: 它不需要任何代码。 这是一种简便快捷的拖放方法。

只需创建空白的新报告。将该报表与现有报表基于同一表。

在此报告上启动查询构建器–是,以创建查询。

然后在查询构建器中执行以下操作:

enter image description here

现在,此子报表将仅返回有图片的记录。

从主报告中剪切图片控件(在设计模式下)。将其粘贴到此报告中。现在,您有了带有图片控件的报告。并且只有带有图片的记录才会出现(由于上述情况)。

现在,保存此子报告-关闭它。

现在,将主报表置于设计模式下,只需从导航窗格中拖放子报表即可。

结果应如下所示:

enter image description here

默认情况下,Access应该(将)将主链接子级设置为PK(这很好)。 (以防万一-请检查链接主子设置)

确保主要的子报告可以增长/收缩。像上面一样将其大小调整为一行。

因此,只需单击几下鼠标,并进行一些拖放操作,即可开始比赛。

编辑

我还错过了主要报告中的内容-您希望将主要详细信息部分的内容设置为否。您还需要使用打印预览-这似乎不适用于报告视图。