Access不能建立关系

2024-12-29 20:55:31
推荐回答(2个)
回答1:

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

回答2:

没看到文件,根据你的描述猜测,可能是想关表中的数据有,但主表中没有,就无法建立这种关系。比如:主表(表1)为:编号 职员姓名01 张三02 李四a相关表(表2)为:职员编号 培训日期 培训内容01 XXXX XXXX01 XXXX XXXX02 XXXX XXXX03 XXXX XXXX上面(表2)中有职员编号为03的,但主表(表1)中没有,这时你在(表1)中加入这个职员或(表2)中删除这个职员,再建立关系应该就可以。