vba - 带有 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
因为我的代码不起作用,因为 whereConditionstrCriteria
在主窗体而不是子窗体上使用
解决方案
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.
推荐阅读
- python-3.x - 如何将字典映射到熊猫系列系列?
- javascript - 如何优化 javascript 代码片段?
- javascript - 安装更新的apk后无法重新打开应用程序
- dart - 如何显示带有透明屏障的对话框?
- customization - 如何将数量输入添加到产品列表页面到 OpenCart 中的类别页面?
- wordpress - 日期格式在 contact-form-7 中不起作用
- javascript - formArrayName 必须与父 formGroup 指令一起使用
- drush - 如何在 ddev Drupal 8 配方中恢复 drush 版本?
- iis - IIS:如何使用正文数据记录 ws 请求和响应?
- r - 如何从 R 中的年份和周数中获取月份的月份和周数?