如何让 Access 识别数据条目中的重复项? (多对多关系)

问题描述 投票:0回答:1

tl;dr:如何确保 Access 不会在关键字表中为此条目创建两行,而是识别它是相同的并为其分配相同的 KeywordID?

更多信息: 我创建了一个数据库,其中包含学术文献检索结果的信息。数据库的“进入方式”主要有三种——“资源”(期刊文章)、“项目”(期刊文章中描述的项目)和“城市”(文章中描述的项目所在城市)。文章发生了)。

对于数据输入,我创建了一个资源表单(包含“作者”、“关键字”和“项目”子表单)、一个项目表单(包含“城市”、“工具”、“服务”和“障碍”子表单)和一个城市表单(无子表单)。资源可以描述多个项目,项目可以在多个城市实施——同样,一个城市可以有多个项目,一个项目也可以在多个资源中描述。

子表单基于将连接表中的 ID 和相关变量表中的“名称”字段组合在一起的查询。数据输入方面一切似乎都工作正常,直到我找到与另一个资源具有相同关键字的资源。当我查看 Access 如何处理这些内容(Access 是否将它们识别为多个资源中的相同关键字)时,我意识到事实并非如此。相反,Keywords 表中有两行具有相同的关键字,但 KeywordID 不同。

由于我以相同的方式创建了所有子表单,我认为如果我遇到同一位作者,我也会遇到同样的问题。目前,子表单位于数据表视图中,当您创建新项目时它们是空的,因此您必须输入值。

谢谢!我一周前才开始使用 Access,所以我很新,非常感谢任何帮助和指导!我没有任何使用VBA的经验,所以如果有一种方法可以在没有代码的情况下做到这一点,我会非常感激(我有使用其他语言的经验,所以如果没有一种没有代码的方法,我可以尝试接受它——但我有点时间紧迫,所以需要的额外知识更少......:-p)。

到目前为止我所尝试过的注释: 有问题的关键字是“城市复原力”,两个 KeywordID 分别是 5、12。我选择了关键字 ID 为 5 的城市复原力,并手动添加了相关的第二个资源 ID (4)。现在,如果您查看 ResourceID 4 的记录,您会看到两次城市复原力。

database ms-access many-to-many data-entry
1个回答
0
投票

我必须承认我没有阅读你所有的问题。太长了,读不完。

如果你有多对多关系,你就有一个链接表。您可以为此表创建由 2 个外键组成的复合主键。这可以防止重复:

   T1
  ┌────────────┐                                T2
  │ ID (PK)    │◄──┐                           ┌────────────┐
  ├────────────┤   │  ┌───────────────┐     ┌─►│ ID (PK)    │
  │            │   └──┤ T1_ID (PK, FK)│     │  ├────────────┤
  └────────────┘      │ T2_ID (PK, FK)├─────┘  │            │
                      ├───────────────┤        └────────────┘
                      │               │
                      └───────────────┘

如果您已经有重复项,Access 有一个 “查找重复项查询向导”(功能区:创建 > 查询向导)。

© www.soinside.com 2019 - 2024. All rights reserved.