使用 whereCondition 打开带有子表单的表单

Opening form with subforms with whereCondition

我有一个包含值 dateFromdateTo 的表单。 单击按钮我想打开一个包含两个子表单的新表单。其中一个子表单显示过滤后的记录。它显示 note_datedateFromdateTo 之间的记录。

note_date 是查询中的列之一,它是过滤子表单中的记录源

所以不起作用的是其中一个子表单的过滤器。

这是我的代码,我认为它会如何工作

Overview_of_vacation_notes是包含两个子窗体的窗体名称

dtmFrom = Text56.Value 'start date
dtmTo = Text58.Value   'end date
Dim strCriteria As String

strCriteria = "[note_date] >= #" & Format(dtmFrom, "yyyy-mm-dd") & "# AND [note_date] <= #" & Format(dtmTo, "yyyy-mm-dd") & "#"
    
DoCmd.OpenForm "Overview_of_vacation_notes", whereCondition:=strCriteria

有什么方法可以做这样的事情吗?

DoCmd.OpenForm "Overview_of_vacation_notes", subformName.whereCondition:=strCriteria

因为我的代码不起作用,因为 whereCondition 在主窗体上使用 strCriteria 而不是子窗体

DoCmd.OpenForm "Overview_of_vacation_notes" 正在打开父表单。因此,您不能将 where 条件应用于此行。您需要为子表单设置过滤条件并过滤该子表单以显示过滤后的数据。试试下面的代码。

dtmFrom = Text56.Value 'start date
dtmTo = Text58.Value   'end date
Dim strCriteria As String

strCriteria = "[note_date] >= #" & Format(dtmFrom, "yyyy-mm-dd") & "# AND [note_date] <= #" & Format(dtmTo, "yyyy-mm-dd") & "#"
    
DoCmd.OpenForm "Overview_of_vacation_notes"
Forms![Overview_of_vacation_notes]![YourSubform].Form.FilterOn = False 'Clear previous filter.
Forms![Overview_of_vacation_notes]![YourSubform].Form.Filter = strCriteria 'Set filter criteria
Forms![Overview_of_vacation_notes]![YourSubform].Form.FilterOn = True 'Apply filter.