错误 2467 在导航中过滤表单中的子表单

Error 2467 filtering a subform in a form in a navigation

我有一个包含 1 个下拉列表和 4 个子报表的表单,称为 rptBuildingResume。当我在下拉列表中选择一个值时,我会使用该值过滤所有子表单。这工作正常但是...

我有一个名为 Main 的导航窗体,当我将以前的窗体添加到我的导航窗体中时,当然我更改了我的代码,而这个

2467 error

开始出现,但有趣的是它对第一个子报表工作正常,但对下一个子报表失败。如果我改变调用的顺序,它对第一个调用总是很好,但在下一个失败。

这是我用来执行此操作的代码:

[Forms]![Main]!SubformNav.[Form].rptNotFinishedBld.Report.Filter = "BuildingID_FK = " & Me.Building
[Forms]![Main]!SubformNav.[Form].rptNotFinishedBld.Report.FilterOn = True
[Forms]![Main]!SubformNav.[Form].rptNosPaidInFullBld.Report.Filter = "BuildingID_FK = " & Me.Building
[Forms]![Main]!SubformNav.[Form].rptNosPaidInFullBld.Report.FilterOn = True
[Forms]![Main]!SubformNav.[Form].rptDoneBld.Report.Filter = "BuildingID_FK >= " & Me.Building
[Forms]![Main]!SubformNav.[Form].rptDoneBld.Report.FilterOn = True
[Forms]![Main]!SubformNav.[Form].rptAgreeDepositNoStartBld.Report.Filter = "BuildingID_FK = " & Me.Building
[Forms]![Main]!SubformNav.[Form].rptAgreeDepositNoStartBld.Report.FilterOn >= True

如果这是一个内置导航表单,那么它是由内置导航表单的工作方式引起的 - 我会在此处阅读 https://www.access-programmers.co.uk/forums/showthread.php?t=286675 以了解因果关系的一些解释。

如果不是,那么您需要查看此处的语法示例 http://access.mvps.org/access/forms/frm0031.htm,了解从其他表单/子表单引用子表单的正确方法。

编辑:另一种方法是使用子报表的 Child/Master 属性来避免必须过滤它们,这可能也更有效。