查询的组合框过滤器在 Null 时不起作用(仅在表单中)
Combobox filter on a query not working while Null (in the form only)
我目前正在 MS-Access 2010 上进行一个项目,我为一个问题苦苦挣扎了几个小时。我想对 SELECT/PIVOT 语句应用过滤器。该查询的结果显示在列表框中。
问题是当 Combobox 设置为 Null 时不显示任何结果。但是当我 select 那个组合框中的特定值时,它工作得很好。
- Cbbox 过滤器被声明为参数
- 我的查询 WHERE 子句如下所示:
WHERE (Jobs.fk_group=[Formulaires]![frm_MAIN]![lst_filterGroup] AND (fk_otherCritera='XXX'))
OR ((([Formulaires]![frm_MAIN]![lst_filterGroup]) Is Null) AND (fk_otherCritera='XXX'))
- 当我手动输入参数值时查询有效(=当我输入空字符串时,它会显示所有记录 = 我想要的)
- Idk 如果它很重要,而且我使用的列表视图动态交换它的记录源(=它运行 2 个不同的查询),这取决于另一个 Cbbox
- 我在 MyListview.Requery 调用和 IsNull(myCbboxReference) returns True 之前将参数值检查到我的 VBA 代码中,我的其他标准也正常。
我不知道我做错了什么,我需要帮助:-(
此致,LR
我建议在组合框中使用特殊值来显示主 table 中的所有记录,并且不要依赖于与 Null 值的比较。您的查询可能不起作用,因为空组合框 returns ""
,而不是 Null
.
还要注意基于对 controls/parameters 的引用的查询。 Access 有一个错误:如果您对表单中的数据应用过滤器,基于具有此类引用的查询,它会在重新查询期间停止从 controls/parameter 读取新值。它至少出现在数据表模式下的子表单中。此错误的解决方法 - 使用函数而不是引用。
我目前正在 MS-Access 2010 上进行一个项目,我为一个问题苦苦挣扎了几个小时。我想对 SELECT/PIVOT 语句应用过滤器。该查询的结果显示在列表框中。
问题是当 Combobox 设置为 Null 时不显示任何结果。但是当我 select 那个组合框中的特定值时,它工作得很好。
- Cbbox 过滤器被声明为参数
- 我的查询 WHERE 子句如下所示:
WHERE (Jobs.fk_group=[Formulaires]![frm_MAIN]![lst_filterGroup] AND (fk_otherCritera='XXX'))
OR ((([Formulaires]![frm_MAIN]![lst_filterGroup]) Is Null) AND (fk_otherCritera='XXX'))
- 当我手动输入参数值时查询有效(=当我输入空字符串时,它会显示所有记录 = 我想要的)
- Idk 如果它很重要,而且我使用的列表视图动态交换它的记录源(=它运行 2 个不同的查询),这取决于另一个 Cbbox
- 我在 MyListview.Requery 调用和 IsNull(myCbboxReference) returns True 之前将参数值检查到我的 VBA 代码中,我的其他标准也正常。
我不知道我做错了什么,我需要帮助:-(
此致,LR
我建议在组合框中使用特殊值来显示主 table 中的所有记录,并且不要依赖于与 Null 值的比较。您的查询可能不起作用,因为空组合框 returns ""
,而不是 Null
.
还要注意基于对 controls/parameters 的引用的查询。 Access 有一个错误:如果您对表单中的数据应用过滤器,基于具有此类引用的查询,它会在重新查询期间停止从 controls/parameter 读取新值。它至少出现在数据表模式下的子表单中。此错误的解决方法 - 使用函数而不是引用。