列表框和选项组在 MS Access 2013 的主列表框中过滤 3 个不同的行

List box and Option group filtering 3 different rows in MAIN list box in MS Access 2013

我已经为以下问题苦苦挣扎了一段时间,如果有一些脑力,我会非常高兴;)

我有一个高级过滤器表单,它通过许多不同的过滤器过滤订单,目前我无法使用的过滤器如下:

我在一个表单上有 4 个控件(全部未绑定):

  1. ogProductType - 允许您从 3 种产品中进行选择的选项组
  2. lbAllProducts - 显示所有产品类型的列表框。它有 2 行,并被 tbSearchProducts 过滤,它按产品名称搜索,但 lb 由第一行(产品代码)绑定。过滤器是通过将条件插入名称行来完成的:

    "Like "*" & [tbSearchProducts] & "*"".
    

  3. tbSearchProducts - 用于按名称搜索产品的文本框。重新查询 lbAllProducts OnChange。

  4. 主订单列表框 - lbOrders - 有很多行。在这种情况下,我们关心的是 ID;电子产品代码; f产品代码; k产品代码。它应该显示过滤器为真的所有订单的所有 ID(购买类型 1 产品的所有订单)。在查询生成器中,我将以下代码作为每个查询的标准:

In lbOrders:

for eProductCode row
IIf([ogProductType]=1 And Len(Nz([lbAllProducts]))>0;[lbAllProducts];"")

for fProductCode row
IIf([ogProductType]=2 And Len(Nz([lbAllProducts]))>0;[lbAllProducts];"")

for kProductCode row
IIf([ogProductType]=3 And Len(Nz([lbAllProducts]))>0;[lbAllProducts];"")

我希望根据选择的产品类型过滤主列表框(选择 eProductCode 时选项组设置为第一个选项 = 1;fProductCode = 2;kProductCode=3),但忽略其他总共2行。可悲的是,那个错误的陈述说该字段的标准是“”,如果它不是通过选项组选择的,它就不起作用。

我如何堆叠 3 个条件,所有条件都从同一个列表框中取值,但前提是选项组是正确的,并且它们不会相互干扰?

我试过在 false 中使用“*”但它不起作用...

有什么想法吗?

我已经解决了:)

您永远不会使用条件来过滤 3 行...您只需使用字段本身来加载您需要的正确行并放入条件...

这是该字段的代码:

Expr1: IIf([obProducts]=1 And Len(Nz([lbSearchProduct]))>0;[tblOrders]![еProductCode];IIf([obProducts]=2 And Len(Nz([lbSearchProduct]))>0;[tblOrders]![fProductCode];IIf([obProducts]=3 And Len(Nz([lbSearchProduct]))>0;[tblOrders]![kProductCode])))

在该行的条件中,我设置了包含产品代码 lbAllProducts 绑定列的列表框