如何在 MS Access 中隐藏空子报表上的按钮?

Posted

技术标签:

【中文标题】如何在 MS Access 中隐藏空子报表上的按钮?【英文标题】:How can I hide buttons on an empty subreport in MS Access? 【发布时间】:2020-08-11 23:39:08 【问题描述】:

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

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

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

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

当附件报告有记录时,如下所示:

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

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

当子报表没有记录时,如下所示:

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

【问题讨论】:

【参考方案1】:

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

Me!DeleteButton.Visible = Not Me.NewRecord

【讨论】:

感谢您的回复。我已经尝试过了,但是对于我的生活,我无法弄清楚在哪里可以找到表单中的 OnCurrent 事件(一切都是德语)。但是我尝试了许多不同的方法(例如加载),当它们在子表单中时它们似乎并没有触发。此外,它返回一个它不知道“NewRecord”的错误。难道 NewRecord 只能在表单上使用? 哦,抱歉,错过了这是一份报告。报告中没有此类事件。

以上是关于如何在 MS Access 中隐藏空子报表上的按钮?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Python 单击 MS Access 上的按钮

如何在 MS-Access 97 中以编程方式访问报表工具栏

MS Access 如何将焦点集中在特定的多个报表实例上

MS Access 表单开发:按下选项按钮时隐藏对象,无需对需要隐藏的每个对象进行编码

MS Access - 在设计时添加未绑定字段

MS Access 表单上的密码保护提交按钮仍会导致按钮提交