Access不能建立关系

在什么情况下可以勾选实施参照完整性三个复选框建立表之间的关系?我每次勾选那三个复选框就出错,说Microsoft Office Access不能建立这个关系,也不能实施参照完整性,因为我其中的一个表违反了参照完整性规则,例如:关于职员的记录可能存在于相关表中,但主表中却没有有关职员的记录 编辑此数据以使主表中的记录存在于所有相关表中 还说 如果想建立关系 只能钩掉实施参照完整性的复选框 。。。这种情况该怎么解决???

通俗的讲,对应关系主要由一对一和一对多。

不能建立关系可能为以下原因,以父母子女关系为例:

    主键空值——对应方法为:去掉主键中的空值;

    主键没有唯一(一个人只能有一对亲生父母)——对应方法为:去掉主键中重复的值;

    缺乏主键(人都是父母生的)——对应方法为:添加外键所需的主键(把父母找过来);


更多信息请参考《Access2007宝典》-完整性规则

第一条参照完整性规则说明任何主键都不能包含空值。空值( null) 只是一种不存在的值。

尚未赋值的字段值(即使是默认值〉就是空。数据库表中任意一行记录的主键字段都不应该为空

值,因为主键的主要目的就是要确保行的惟一性。显然,空值不是惟一的,如果主键为空值,则

关系模型就不能正常工作了。

Åccess 会自动实施第一条参照完整性规则。在向表中添加数据时,不可能保留主键字段为空

而不会产生任何警告〈这是"自动编号"字段可以很好地作为主键使用的一个原因〉。一旦在Access

表中指定一个字段作为主键之后, Access 就不会允许删除这个字段中的数据了,也不会允许修改

这个字段中的值,否则可能会与另外一条记录中的值重复。

在使用由几个字段构成的复合主键时,这个复合主键中的所有字段都必须包含值。没有字段

允许为空。复合主键中的组合值必须是惟一的。

、第二条参照完整性规则是说所有外键值都必须匹配对应主键值。这就意味着对于一对多关系

的"多"端的表中的每条记录来说,在这个关系的"一"端的表中都必须有一条对应记录。

那些在"一"端没有对应记录的"多"端的记录就称为孤儿记录,应该从数据库方案中删除。

如何确定数据库中的孤儿记录非常困难,因此最好要避免这种情况的出现。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-27
没看到文件,根据你的描述猜测,可能是想关表中的数据有,但主表中没有,就无法建立这种关系。比如:主表(表1)为:编号 职员姓名01 张三02 李四a相关表(表2)为:职员编号 培训日期 培训内容01 XXXX XXXX01 XXXX XXXX02 XXXX XXXX03 XXXX XXXX上面(表2)中有职员编号为03的,但主表(表1)中没有,这时你在(表1)中加入这个职员或(表2)中删除这个职员,再建立关系应该就可以。
相似回答