访问:如何在同一个字段内相互匹配/关联记录?


1

在我的Access数据库中是一个包含项目信息的表,ID是'projectnumber'。我希望能够匹配/链接/关联不同的项目编号(所有在同一领域中说明)。

因此,当我在表单中打开项目1时,我希望查看与项目1相关的项目项目数,例如项目编号2,5和6.当我打开项目2时,我希望看到项目编号1,在表格中,我想添加新的“关系”。

不幸的是,我不知道如何实现这一目标。我是否需要创建一个新表(或只是一个字段),以便为彼此相关的项目提供“关系ID”?或者这可以通过selfjoin解决吗?

Answers:


1

如果您有主/从关系(即:一个主项目和几个相关的子项目),Andy G提供的解决方案是完美的。

但是如果你有一个相同的关系,任何记录可以与任何数量的其他记录相关,那么你可以创建我称之为“链接表”,其中你有2个字段:记录A的ID和记录B的ID

然后,在您输入或查看记录的表单中,您可以使用此链接表创建子表单以添加链接。

注意:您还可以创建一个宏,以确保对于链接表中的每个A-B记录,您还有一个B-A记录,或者只是手动执行。


0

有点迟了但是,是的 自联接

  • 向表中添加一个新字段,例如 MainProject。确保它具有与。相同的数据类型 ProjectNumber 领域;
  • 进入关系窗口并再次添加表格。拖放 MainProject 的第一个副本 ProjectNumber 第二份副本;
  • 双击连接线并选择 加强参照完整性 。这将确保您无法分配 MainProject 一个尚未存在的id ProjectNumber

当您构建用于为此表创建新记录的表单时,请添加一个 ComboBox 并设置它 RowSource 到表格中列出ProjectNumbers(可能还有其他字段)的sql语句。设置它 ControlSourceMainProject

但请注意,如果您正在创建一个新项目,并且该项目的id也将用作主项目的id,那么它需要更多的努力。您需要保存当前记录,并且 ReQuery 这个新id之前的组合框将显示在其列表中。您可能希望使用按钮来实现此代码。手动,你可以按 Shift-Enter 保存当前记录,然后单击进入组合框并按 F9 重新询问它。

但是,如果还有其他与该主项目相关的细节尚未在表中,那么,是的,您应该创建一个新表来保留这些细节 - 特别是,仅与主要相关的信息项目。

如果您只需要ProjectNumber(主项目),那么上面描述的自联接就足够了。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.