Ms access 使用acCmdFilterMenu筛选时获取子窗体的记录计数

Ms access 使用acCmdFilterMenu筛选时获取子窗体的记录计数,ms-access,Ms Access,每次以某种方式筛选子窗体时,我都希望得到它的记录计数。包含记录计数值的文本框将保留在主窗体上 我熟悉的记录计数方法是: Trim([FORM/SUBFORM ADDRESS].RecordsetClone.RecordCount) 当子窗体通过VBA记录源SQL的更改进行过滤时,这种方法可以很好地工作 最近,尽管我添加了用户也可以使用运行acCmdFilterMenu的命令按钮对子表单列进行过滤的功能,即以下类型的菜单: 我将record count方法放在一个模块中,以便在窗体和子窗体事件之

每次以某种方式筛选子窗体时,我都希望得到它的记录计数。包含记录计数值的文本框将保留在主窗体上

我熟悉的记录计数方法是:

Trim([FORM/SUBFORM ADDRESS].RecordsetClone.RecordCount)

当子窗体通过VBA记录源SQL的更改进行过滤时,这种方法可以很好地工作

最近,尽管我添加了用户也可以使用运行
acCmdFilterMenu
的命令按钮对子表单列进行过滤的功能,即以下类型的菜单:

我将record count方法放在一个模块中,以便在窗体和子窗体事件之间全局调用它:

公共子收件箱计数()
形式!Home.txtInboxCount=Trim(Forms!Home!tblJob\u Search\u sub.Form.RecordsetClone.RecordCount)
端接头
然后调用子窗体的OnApplyFilter事件中的记录计数:

Private子表单\u ApplyFilter(取消为整数,ApplyType为整数)
MsgBox“已应用过滤器”
收件箱计数
端接头
测试消息“Filter Applied”会触发,因此它在该事件中运行代码。当使用
acCmdFilterMenu
筛选子窗体时,我使用的记录计数方法似乎不起作用。。。但当我使用更改记录源SQL的命令筛选子窗体时,它确实起作用

使用
acCmdFilterMenu
筛选子表单时,如何获取子表单的记录计数?

在子表单的页脚部分创建一个文本框(您可以使用
Visible=False
将其隐藏),并将其sourceObject设置为
=count(*)
让我们把它命名为
txtRecordCount


在父窗体中,创建另一个引用上一个文本框的文本框。将SourceObject设置为
=[NameOfSubformControl].Form![txtRecordCount]

非常感谢。这适用于
acCmdFilterMenu
方法,因此我们接受了答案,但是当通过更改记录源的SQL来过滤子窗体时,父窗体上的文本框会显示
#Error
。我确信我能找出如何根据上下文使用不同的记录计数方法。这会在该窗体的数据表视图中添加一列,显示0,直到单击该列为止。。。真不幸。