MS Access 表单数据表 - 使用 VBA 启用/禁用总计行

问题描述 投票:0回答:1

我希望能够通过 vba 启用/禁用数据表总计行。 这似乎是一件非常简单直接的事情,但我不相信目前 vba api 中公开了这种能力。 如果有人找到了一种方法来做到这一点,我将不胜感激。

我想这样做的原因是我发现总计行会减慢使用动态集记录集类型的表单,但在使用快照记录集类型时速度非常快。 如果我的用户想要查看总计,我希望能够切换到快照类型并打开总计,然后切换回 Dynaset 并在想要编辑时关闭总计。

我知道可以通过调用以下命令来切换总计行的状态:

Application.CommandBars.ExecuteMso "RecordsTotals"

我还知道可以通过使用未记录的属性来设置 TableDef 或 QueryDef 上的 Totals 行的状态,如下所示:

db.TableDefs("YourTableName").Properties("TotalsRow") = True / False

(感谢此方法的链接https://www.isladogs.co.uk/totals-row-vba/index.html

但是,Form vba api 上不存在此属性。

我尝试了各种方法来做到这一点,包括

  • 尝试保存状态变量并跟踪所有状态变化以“了解”总计行是否可见
  • 尝试计算记录集和显示行数
  • 尝试确定数据表表单页脚部分是否可见
  • 尝试截取屏幕截图或以其他方式抓取数据表图像以确定是否显示总计行

但是,这是 MS Access 中我无法找到令人满意的解决方法的少数事情之一。

如果有人知道如何做到这一点,可以分享他们的方法,我将不胜感激。

vba ms-access datasheet
1个回答
0
投票

感谢@Gustav 将我更改为您的帖子。

正如我的文章所明确的,当添加总行功能时,Access 团队没有添加 VBA 方法来启用/禁用表单 VBA 中的总行数。 2007 年过去了 17 年,他们现在不会再这样做了!然而,我在文章中提供的使用 CommandBars 的代码完美地完成了这项工作

Application.CommandBars.ExecuteMso "RecordsTotals"

事实上,我提供了一个示例应用程序,它以数据表形式显示了此代码的使用情况。注意:所以我可以在数据表上包含按钮,它实际上是一个拆分表单,隐藏了单个记录视图

所以我不确定你想要什么功能我没有提供。如果您需要进一步的帮助,请随时使用我文章中的链接给我发电子邮件。为了其他人的利益,我们可以随时向此线程添加更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.