MS Access - 从表中填充复选框列表

Posted

技术标签:

【中文标题】MS Access - 从表中填充复选框列表【英文标题】:MS Access - populate checkbox list from table 【发布时间】:2016-03-10 17:38:47 【问题描述】:

我正在使用本地 Access 数据库。假设我有 3 张桌子 -

Projects、Contractors、Project_Contractors(链接表,多个承包商可以处理多个项目)。

我正在构建一个用于创建新项目条目的表单。我希望此表单具有所有承包商的复选框列表,因此该表单将向 Projects 表添加一个新条目并填充链接表。

我对 SQL 非常有经验,但对 Access 却没有。有没有办法我可以直接从承包商那里填写表格选项列表来完成这个?我正在使用 Access 2013。

【问题讨论】:

如果不将表单切换到设计模式、添加控件、保存表单并返回正常模式,就无法在运行时向表单添加控件。这是一个糟糕的解决方案。另外我不知道您可能有多少个承包商,但如果是数百个或更多,则从空间、资源和实际角度来看,该解决方案不适用。下面克里斯托弗的解决方案是我能想到的最佳方法 必须使用复选框吗?这是风格选择还是要求? 复选框将是理想的,不会有超过 10-15 个承包商。明天我可以试一下列表框选项,看看效果如何,谢谢。 【参考方案1】:

列表框控件非常擅长实现这一点。对于较大的数据集,滚动浏览它们可能会很笨重,如果你不能让它足够高以显示所有行,你也会失去以前选择的可见性,但是设置和链接到 Contractors 表很容易(你应该可以通过向导来完成,或者在控制源中输入一些 SQL)。

打开列表框的多选属性应该可以满足您的需求。 MultiSelect Property

我认为从列表框中获取选择以生成附加查询需要 VBA。这是一个解释如何完成它的链接。 Clicky

编辑:为了更直接地回答您的问题,您可以通过在您的 Contractors 表中添加一个布尔字段(那里有一个复选框选项)来使用复选框,并将该表用作输入表单中的子表单。我个人认为这是一个糟糕的设计,而且清理它的步骤比使用列表框要复杂得多。

【讨论】:

以上是关于MS Access - 从表中填充复选框列表的主要内容,如果未能解决你的问题,请参考以下文章

根据复选框选中的属性从表中选择单元格值

向表中插入多行 - Access

access中一个表单中选中一个复选框其余的也会选中怎么解决

使用复选框从表中删除记录[重复]

在列表框 ms-access 2013 VBA 中将多个不同的字段作为列表项返回

解决 Ms Access 连续表格?