Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 筛选以拆分形式显示为组合框的列_Sql_Ms Access_Vba - Fatal编程技术网

Sql 筛选以拆分形式显示为组合框的列

Sql 筛选以拆分形式显示为组合框的列,sql,ms-access,vba,Sql,Ms Access,Vba,我有一个基于表的拆分表单(tblMain)。表单显示了许多列,其中一些是文本框,另一些是组合框。我可以轻松地对表单的数据表部分中的每一列进行排序和筛选,但两列除外 这两列是具有相同控制源和相同行源表的组合框,但有以下区别: cboPUNUM: control source tblMain.[PU_ID]; row source SELECT tblPU.[PU_ID], tblPU.PUNUM FROM tblPU; cboPUTYPE: control source tblMain.[

我有一个基于表的拆分表单(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表达式,但这会显著降低性能。

好的,看起来我考虑过这个问题了


我刚刚更改了拆分表单的查询,并将tblPU包含在这两个字段中。然后将表单控件转换为文本框,并将其直接来源于该字段。按照我的要求工作。

首先,将两个表单控件绑定到同一个表字段,这会强制两个控件始终携带相同的值。考虑重新设计。第二,请更好地说明您的场景,或者提供一个屏幕截图或其他一些东西,因为很难理解您正在尝试执行的操作:“在下拉列表中过滤的复选框中显示所有可用值”?谢谢,Parfait,我添加了一些图片来说明我的问题。是的,我意识到这两个控件都绑定到同一个源,并且对于特定记录,这两个控件的主键总是相同的。但我将过滤器应用于包含许多记录的整个数据库。例如,PUNUM 84174写入源表中的两个PK(PU_ID):32和63。其中一个是FHP型,另一个是AHD型。也许结构不太理想,但事实就是这样。因此,当我在过滤器下拉列表中选择84174时,它会显示PU_ID为32和63的记录。那么PUTYPE不应该显示相同的吗?