2017-02-13 91 views
0

我有一个MS Access 2013的窗体包含子窗体(子孙),在数据表视图中的子窗体。微软访问:执行子代表的每个实例代码

现在我在主窗体上有一些控件,应该能够在子窗体和孙窗体中筛选记录。

过滤孩子形式可与

Dim strSQL As String 
strSQL = ... 
Me!child.Form.RecordSource = strSQL 
Me!child.Requery 

完全正常,但如果我想设置为孙子过滤器与

Dim strSQL As String 
strSQL = ... 
Me!child.Form!grandchild.Form.RecordSource = strSQL 
Me!child.Form!grandchild.Requery 

我得到错误2455随着this question我通过展开一个或多个子表单的行来解决错误。

但我现在想要为每个孙行设置RecordSource,而我当前的代码仅适用于非常第一行,与我正在展开/折叠的行无关。

如何在我的主表单中更改每个子表单记录的RecordSource,至多没有在过滤之前手动扩展任何行?

编辑: 古斯塔夫提供了一个无码解决方案,帮助我。尽管如此,我不知道如何从所有实例的主窗体中通常更改孙子的窗体属性。

回答

1

您不需要调整记录源。

调整主/子链路字段孙子窗体的控制,和滤波将是自动的。

+0

如果我找到了你,它将子窗体连接到主窗体的特定字段/ ID。我不希望这样,我想使用RecordSource中的WHERE子句来显示满足特定条件的子表单中的记录。 – Nikno

+0

你可以这样做。但是,使用_Master/Child_link字段是零代码解决方案。 – Gustav

+0

假设我想要显示sububform'field1 = foo'和'field2 = bar'中的所有数据,我该如何使用链接字段? – Nikno