我有一个基于表(tblMain)的拆分表单。表单显示了许多列,其中一些是文本框,另一些是组合框。除了两列之外,我可以轻松地对表单的数据表部分中的每一列进行排序和过滤。
这两列是具有相同控制源和相同行源表的组合框,但有以下区别:
cboPUNUM:
control source tblMain.[PU_ID];
row source SELECT tblPU.[PU_ID], tblPU.PUNUM FROM tblPU;
cboPUTYPE:
control source tblMain.[PU_ID];
row source SELECT tblPU.[PU_ID], tblPU.PUTYPE FROM tblPU;
表tblPU具有以下结构:
PU_ID PUNUM PUTYPE
1 11234 SMC
2 21234 DPL
3 11234 NEC
4 21123 SMC
and so on...
我们的想法是在拆分表格中为PUNUM和PUTYPE设置两个独立的列,并且能够过滤它们。
拆分表单中的两列都显示复选框中的所有可用值,以便在列顶部的下拉列表中进行过滤,直到应用过滤器:
问题是我只能过滤其中一列(见下图)。例如,如果我在PUNUM字段中选择84174,那么我将无法过滤PUTYPE字段。理想情况下,PUTYPE应该为我提供检查FHP或ADH的选项,但复选框不会出现在下拉列表中。
反之亦然,如果我从过滤PUTYPE开始,即我选择FHP并期望PUNUM有很多选项,但它没有显示过滤的复选框(见下文)。
请告知我能做些什么,因为我没有想法......?
P.S。 DLookup函数代替组合框不允许根据列过滤。
我知道我可以将表单基于查询并在该查询中保存DLookup表达式,但这会显着降低性能。
答案 0 :(得分:0)
好的,看起来我在想这个问题......
我刚刚更改了拆分表单的查询,并将tblPU包含在这两个字段中。然后将表单控件转换为文本框,并将它们直接发送到该字段。像我想的那样工作。