1

注意:我一直在争论这是否应该进入 SuperUser 或 StackOverflow ......我认为 SU 更好,但请让我知道 SO 更适合这个问题。

好吧,所以我有点把头发拉出来了。我有一个数据库,我在其中跟踪有关某个软件的问题、问题、变更请求等。这里的一个重要方面是能够添加附件(错误报告、屏幕截图等)。我读到通常最好在 Access 中创建自己的附件处理系统,因为使用本机附件字段会对性能产生负面影响,所以我就是这样做的。另外,在大多数情况下,我更喜欢我的实现而不是本机实现,所以这是一个奖励。

我创建了一个带有不同按钮的报告,用于添加、复制和删除具有不同按钮的文件,包括处理所有内容的 VBA 代码。然后,我将报告作为子报告添加到相关报告或表单中。示例:有人想问一个问题,并想附上屏幕截图和错误日志。主表单处理问题和标签等内容,子报表处理附件。在每条记录(附件)的右侧,我有两个按钮 - 一个用于打开对话框以在本地复制文件,另一个用于删除附件。一切正常,有一个烦恼应该是轻微的,但确实让我感到不安:当子报表为空时,它会在原本为空的详细信息区域中显示两个按钮。这让我很困惑,因为当报告不是时我只有这个空行 t 显示任何记录。一旦我添加了附件,新的附件/记录就会使用该行(这不像是空行是 Access 显示一行以输入新记录)。

在图片中(用德语,因为我用德语做所有这些):

当附件报告有记录时,它看起来像这样:

带有附件的附件子报表

翻译: Anhänge => 附件;Dateiart => 文件类型;Dateiname => 文件名;基准 => 日期;Größe => 尺寸;Kopieren nach... => 复制到...;Löschen => 删除;Anhang hinzufügen... => 添加附件

出于隐私原因,我还涂黑了一些信息,但我希望每个人都能理解。

当子报表没有记录时,它看起来像这样:

没有记录的子报表 我已经在网上搜索了解决方案,但我还没有找到任何有效的方法。我尝试在“NoData”事件中将按钮设置为不可见,只是发现当表单是子表单时该事件似乎不会触发。我尝试将代码添加到详细信息区域的“格式”事件中,但这似乎也没有触发。有谁知道我该如何解决这个令人讨厌的小烦恼?理想情况下,我还会删除标题行并更改标题,但摆脱按钮将是一个很好的开始。

4

1 回答 1

0

它看起来像一个空记录,所以尝试使用子表单的OnCurrent事件:

Me!DeleteButton.Visible = Not Me.NewRecord
于 2020-08-12T20:13:13.793 回答