使用 whereCondition 打开带有子表单的表单
Opening form with subforms with whereCondition
我有一个包含值 dateFrom
和 dateTo
的表单。
单击按钮我想打开一个包含两个子表单的新表单。其中一个子表单显示过滤后的记录。它显示 note_date
在 dateFrom
和 dateTo
之间的记录。
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.
我有一个包含值 dateFrom
和 dateTo
的表单。
单击按钮我想打开一个包含两个子表单的新表单。其中一个子表单显示过滤后的记录。它显示 note_date
在 dateFrom
和 dateTo
之间的记录。
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.