【发布时间】:2017-01-24 09:47:31
【问题描述】:
我有以下情况:
我有一个多对多的关系。
例如 Employee 表、Course 表和它们之间的关系表。
现在我希望用户可以以对话框形式从课程表中选择他的课程。
这意味着对话框内我的连续表单的基础表是课程表。 我希望每一行都有一个复选框,指示是否选择了课程。 正如我所读到的,添加一个未绑定的复选框是不可能的,因为它们只是副本,并且单击选择会选择所有这些复选框。 解决方案是在基础表课程中添加一个是/否字段。
但是据我了解,这里有问题,因为我有几个用户同时使用数据库,如果我单击一个复选框,基础表将被更新,并且此更新将为所有用户选择值同时使用对话形式的,我不想要的。
所以我的问题是,是否有另一种解决方案可以在多用户访问数据库中为每行获取一个有效的复选框。 我可以想象有两种解决方案:
1) 基础表将是关系表,在这种情况下,员工和课程之间的所有可能组合都将与是/否字段一起保存。 (但从数据的角度来看,这将是非常可怕的)
2) 如果对复选框的更改不会直接写回数据库表,我可以在保存时丢弃它们并手动将关系记录插入关系表中。 (这可能吗?)
感谢任何解决方案的建议
【问题讨论】:
-
在所有情况下,您都必须使用 VBA 完全管理它。有两种方法:如果您真的想要复选框,那么您需要使用 ADO 断开连接的记录集。如果您只选择数据表中的行的解决方案是可以的(所以没有复选框),您可以使用 DAO。但在这种情况下,您只能选择一行,或多行并发。我可以稍后按照您选择的解决方案为您提供完整的答案。
-
@thomasG 你是什么意思,只选择一行,还是几个并发行?复选框不是必需的。但是用户需要选择一个或多个行,然后我想在他按下保存按钮时将其保存到连接表中,所以我还需要一种方法来识别所选行
-
@Fionnuala 我有一个联结表,但最初它不会有员工/课程对的任何行。但我必须展示他可以选择的所有可能的课程。如上所述,如果我将所有可能的组合放入带有是/否字段的联结表中,那是可能的,但它会在数据库中添加很多不必要的数据,而且我每次添加新课程时都必须对其进行管理如果有人将员工或课程直接添加到数据库中,则可能导致数据库出错的新员工。
标签: ms-access