滚动到表单中的子报表底部 (Access 2016)

Posted

技术标签:

【中文标题】滚动到表单中的子报表底部 (Access 2016)【英文标题】:Scrolling to the bottom of a Subreport in a Form (Access 2016) 【发布时间】:2020-02-05 14:12:02 【问题描述】:

我在表单中有一个子报表,而且该报表的行数通常多于子报表的高度。我愿意:

    增加子报表(在屏幕上)以显示所有行(我认为这在屏幕上是不可能的) 滚动到子报表的末尾,以便为每条记录显示最后一行和页脚(带总和)

我尝试在包含表单的 Current 事件中的报表的子表单上执行 SetFocus,但未成功,然后在子报表的 GotFocus 事件中在页脚的总和字段之一上添加 SetFocus。如果我单击报告,GotFocus 事件会触发并滚动到底部,但它不会自动运行。

非常感谢任何实现这些结果的建议!

【问题讨论】:

【参考方案1】:
    增长子报表对屏幕大小有限制,但您可以调整大小以适应屏幕 要移动到最后一条记录,您必须将焦点设置为报表控件(首先焦点子报表控件,然后控件子报表)
Me.subreportcontrol.SetFocus
Me.subreportcontrol.Report.AnyControl.SetFocus

DoCmd.GoToRecord acActiveDataObject, , acLast

其中AnyControl是子报表的任何控件。

【讨论】:

啊,我之前尝试 Me.subreportcontrol.Report.AnyControl.SetFocus 时搞砸了。那行得通!谢谢 您必须先将焦点设置为子窗体控件,然后才能聚焦子窗体。通常不需要,因为 Recordser.MoveLast 会在表单上执行此操作,但报表无法移动。

以上是关于滚动到表单中的子报表底部 (Access 2016)的主要内容,如果未能解决你的问题,请参考以下文章

在没有打印预览或打开报表的情况下从 Access 中的表单打印报表?

带有导航表单和子报表的 Microsoft Access 2013 上的奇怪行为

如何将 Microsoft Access 表单中的单个记录打印到报表中

在 VBA Access 中动态填充其他子表单的子表单

如何在 Access 的子窗体上不显示选定的记录?

鼠标滚动 1 个主窗体和 2 个子窗体 MS ACCESS