我想限制我可以在相对复杂的多对多关系的表单中输入的内容(比大多数示例更复杂)

I want to constrain what I can enter in forms for a relatively complex many-to-many relationship (more complex than in most examples)

首先:我使用的是 Access 2016

我的基本设置如下:

这些关系是使用 customer/site id 的外键实现的。这很好用。

不过,我还想要的是:

许多联系人可以负责许多站点and/or许多设施。

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

只要我小心地将数据手动输入到联结表中,这就有效。

但是,我想提供用于将联系人分配给 sites/facilities 的表格,这就是我遇到的问题。

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

虽然数据表没有得到适当的约束。我可以在那里输入新联系人,但有几个问题:

我只想 select 来自属于同一客户的现有联系人。

我该怎么做?

我真的不知道什么样的表格才适合输入这个,我也不太明白什么是访问 "below the surface" :(

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

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

在贷款表格上做同样的事情。