一段时间以来,我一直在努力解决以下问题,并且对于某些脑力非常高兴;)
我有一个高级过滤器表单,它通过许多不同的过滤器过滤订单,目前我无法生成的功能如下:
我在表单上有4个控件(全部未绑定):
lbAllProducts - 显示所有类型产品的列表框。它有2行,并由tbSearchProducts过滤,tbSearchProducts按产品名称搜索,但lb由第一行绑定,即产品代码。通过将标准插入名称行来完成过滤:
"Like "*" & [tbSearchProducts] & "*"".
tbSearchProducts - 用于按名称搜索产品的文本框。已经重新查询lbAllProducts OnChange。
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时,选项组设置在First option = 1; fProductCode = 2; kProductCode = 3),但忽略其他2行完全。可悲的是,这个虚假的陈述说该字段的标准是“”,如果没有通过选项组选择它,它就不起作用。
如何堆叠3个条件,所有条件都取自同一个列表框中的值,但只有在选项组正确的情况下,它们才会相互干扰?
我在“*”中尝试使用false,但它不起作用...
有什么想法吗?
答案 0 :(得分:0)
我已经解决了它:)
您根本不会使用条件来过滤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的绑定列的列表框