使一个组合框指示第二个组合框中可用的选项

问题描述 投票:0回答:1

致敬。

TL;DR - 如何设置组合框 2 以基于组合框 1 填充不同的表?
(Access365 - 版本 2302)

•背景
我对 MS Access (Access365) 比较陌生。我以此作为序言,因为我的问题很可能给你一个痛苦而明显的答案,所以我提前道歉。

一位项目专家委托我找出一种让部门实现无纸化的方法(显然,因为我是我们实验室中唯一能够区分 USB 和 PS/2 端口的人)。

这个想法是一个数据库中包含许多表,以限制冗余。 QC 日志、13 台仪器中每台仪器的表格,用于管理所有试剂(批次和有效期)、主库存等等。希望来自一个单一的数据库,以几种不同的用户表单作为前端,Sup 和 Lead 可以审查所有数据,而无需挖掘“实际上是数千篇”论文。 我决定从QC Log表格开始,因为这是我们一线工人最常使用的。

•问题

我目前正在尝试在 QC 表单上执行的操作涉及两个组合框:一个用于选择报告 QC 失败的仪器,另一个用于选择失败的试剂。我希望仪器的组合框能够确定试剂组合框引用的表,然后能够将这些选择提交到 QCLog 表中。我已经设法在不同的表单上制作一个“提交”按钮,以便不同的项目工作,但这超出了我的谷歌范围。我的想法是这样的:


Private Sub instrument_AfterUpdate() If Me.Instrument.Value = "DxC 1" then Set Me.Reagent As Table.dxc1.reagents 'the table being DxC1, and the column being the reagents column ElseIf Me.Instrument.Value = dxc2 then(...)(etc.) End If End sub

但是我找不到定义表对象的正确语法(如果存在的话)。我见过其他帖子建议在表单上使用子表单来访问不同的表,但是为一个控件构建子表单似乎......效率低下。您有什么建议?

ms-access controls
1个回答
0
投票

Me!cbo_Reagents.RowSource = "SELECT Reagentname FROM tbl_Reagents WHERE InstrumentID= " & Me!Instrument

Me!Instrument 是您的仪器组合框,cbo_Reagents 是试剂组合框。

如果您想坚持为每台仪器使用单独的试剂表,请更改代码:

Select Case Me.Instrument.Value Case "DxC 1" Me!cbo_Reagents.RowSource = "SELECT Reagentname FROM tbl_Reagents_DxC1" Case "DxC 2" Me!cbo_Reagents.RowSource = "SELECT Reagentname FROM tbl_Reagents_DxC2" ' fill in more variations here End Select

调整您想要显示的表名称和字段。

© www.soinside.com 2019 - 2024. All rights reserved.