【发布时间】:2011-12-09 19:47:18
【问题描述】:
在 Access 2003 中,我的表单带有一个数据表和一个嵌入的子数据表。我想将过滤器应用于主数据表和子数据表。首先,我为主数据表strWhere 构建一个过滤器字符串,为子数据表sdsWhere 构建一个过滤器字符串。接下来,从主数据表的 From 对象中,我设置了.filter=strWhere。然后,我在子数据表的 Form 对象上设置了一个过滤器。基本上:
With Me.Controls(dataSheetName).Form
.Filter = strWhere
.FilterOn = True
With .Controls(subsheetname).Form
.Filter = sdsWhere
.FilterOn = True
End with
End with
问题是子数据表只针对主数据表的第一条记录进行过滤。查看子数据表的RecordSet,它只包含主数据表中第一条记录的子记录。我在任何地方都找不到其他记录。
我知道应该可以过滤所有子数据表记录,因为从 Access 界面,将光标放在所需的值上,然后选择 Records>>Filter by Selection 具有所需的效果。 (除了主窗体中的记录有空的子数据表显示,我希望它们不显示)
【问题讨论】: