无法在Access中强制执行参照完整性

时间:2009-06-14 07:10:03

标签: ms-access referential-integrity

我检查了所有错误:主键,唯一性和类型。访问只是似乎无法链接我在我的数据库中的2个字段。有人可以看看吗?

http://www.jpegtown.com/pictures/jf5WKxKRqehz.jpg

感谢。

5 个答案:

答案 0 :(得分:7)

答案 1 :(得分:5)

实际上,您需要在名称字段两侧都有索引

但是,我可以建议您加入太多连接吗?通常,从一个表到下一个表应该只有一个连接。表之间很少有多个连接,而且极少有两个以上的连接。

看看这个链接: http://weblogs.asp.net/scottgu/archive/2006/07/12/Tip_2F00_Trick_3A00_-Online-Database-Schema-Samples-Library.aspx

请注意所有表是如何通过单个关系连接在一起的?

标记为PK的每个字段都是主键。这些是AUTONUMBER字段。标记为FK的每个字段都是外键。这些是Integer类型的索引号字段。主键以1对多关系连接到外键(在大多数情况下)。

99%的时间,您不需要任何其他类型的连接。诀窍是创建具有唯一信息的表。您的数据库中有大量重复信息。

以这种方式重组的数据库称为“规范化”数据库。在http://www.databaseanswers.org/data_models/

有很多很好的例子

答案 2 :(得分:0)

只需加入CompanyID即可。您也可以摆脱PManager中的公司字段。

答案 3 :(得分:0)

我做了以下操作,问题解决了(我在访问时遇到了相同的参照完整性问题)。

  1. 我从Access中的两个表中导出数据。表格1 包含客户代码和公司的基本信息。 客户代码作为主键。

  2. 表2中包含了关于谁的所有信息 与该公司有关的客户。

  3. 我从Table2中删除了导出到excel的所有重复项。

  4. 使用Vlookup我查了一下,发现有11个 客户代码不在表1中。

  5. 我在Access Table中添加了这些代码。我联系了 参考完整性和问题解决了。

  6. 如果不起作用,也要查找外键。

答案 4 :(得分:-2)

您需要创建一个INDEX。也许寻找某种创建索引按钮并在CompanyID上创建索引