首页 > 解决方案 > 对于相对复杂的多对多关系(比大多数示例更复杂),我想限制我可以在表单中输入的内容

问题描述

首先:我正在使用 Access 2016

我的基本设置如下:

这些关系是使用客户/站点 ID 的外键实现的。这工作得很好。

但是,我还想要的是以下内容:

许多联系人可以负责许多站点和/或许多设施。

因此,我制作了以下联结表:

在此处输入图像描述

只要我小心地将数据手动输入到联结表中,这就会起作用。

但是,我想提供表格以将联系人分配给站点/设施,这就是我遇到问题的地方。

到目前为止,我尝试了一些自定义的自动生成表单。它们显示例如设施信息,然后在数据表子表单中显示相关联系人(带有联系详细信息表单的链接)。

但是,数据表没有受到适当的限制。我可以在那里输入新联系人,但有几个问题:

我只想从属于同一客户的现有联系人中进行选择。

我怎样才能做到这一点?

我真的不知道什么样的表格适合输入这个,我也不太明白“表面之下”的访问是什么:(

标签: ms-accessvbams-access-2010

解决方案


我会使用未绑定的组合框来添加新的站点和设施联系人。限制组合框仅显示具有匹配 CustomerID 的联系人。

对于您的站点表单,使用您当前的设置,但将子数据表设置为 AllowAdditions = False。在表单上放置一个未绑定的联系人选择组合框。在组合框旁边放置一个 [添加联系人] 按钮。单击[添加联系人]时,使用 VBA 在 ContactsCustomerSite 表中创建记录。重新查询子数据表以显示新记录。

在 Facility 表单上执行相同的操作。


推荐阅读