Dal*_*ale 4 forms ms-access vba access-vba
必须有一种简单的(r)方法来做到这一点.
我有一种情况,我使用连续表格列出零件.零件清单包括零件类型,制造商,零件编号和数量.列表是零件实例和数量.我可以从部件的实例中查看其他内容,因此显示现有部件没有问题,只需使用连接查询来检索相关记录或使用DLookup单独提取字段.
Type Manufacturer Number Qty
-------------------------------------
Widget Acme 123ab 1
Widget Acme 456 1
Anvil Xyz 12345 2
Llama Northwind 322-12A 1
...
Run Code Online (Sandbox Code Playgroud)
问题是用户需要添加新部件的位置.有数千个不同的部件,因此他们无法真正选择单个部件号组合框.他们希望能够从三个不同的组合框中选择零件类型,制造商和零件编号,从而逐步缩小每个组合框中的结果.
选择零件类型>>选择制造其中一种类型的制造商>>由该制造商选择该类型零件的零件号>>输入数量
好的,所以我可以使用2个未绑定的组合框和DLookup作为默认值,并通过他们的Row Source查询链接它们.最终的组合框是部件编号,其行源已过滤 - 因此它仅列出所选类型和制造商的零件.在这种情况发生之前,我已经做到了这一点并且效果很好.
但是我试图在Access中使用连续表单来执行此操作,并且它在每条记录上返回相同的Dlookup结果.例如
Type Manufacturer Number Qty
-------------------------------------
Widget Acme 123ab 1
Widget Acme 456 1
Widget Acme 12345 2
Widget Acme 322-12A 1
...
Run Code Online (Sandbox Code Playgroud)
唉,发生了什么事?我的Dlookups似乎只使用第一条记录中的值.为什么?
这甚至是一个很好的方法吗?有没有比连续形式的向下钻取组合框更好的模式?我能想到的另一种解决方法是在"添加/编辑部件"类型表单上使用组合框,在对话框中选择详细信息,然后从中填充部件号.但这似乎更加愚蠢.