我要发布
仪器网/ 仪器社区/ 数据库软件/ access数据库的软件,总是提示错误数据库中的表错误时怎么...

access数据库的软件,总是提示错误数据库中的表错误时怎么回事啊

香港进口车行    2013-01-30    数据库软件    浏览 380 次

错误提示是“由于数据表‘dept’需要一个相关记录,不能添加或修改记录“... 错误提示是“由于数据表‘dept’需要一个相关记录,不能添加或修改记录“

精彩问答
l馬l 发布日期:2013-02-01
看了错误提示,您应该至少是有2个表且建立了关系。

当我们把2张表建立联系的时候,这2个表肯定是有关系的。它可以是一对一的关系;如果是多对多的关系,这是不允许出现的(说明表及其关系设置有问题);大多数都是一对多的关系,当建立了一对多关系时数据库引擎就自然建立完整性原则,它能保证2个表之间的关系及数据得到正确的维护,从Z基本的意义上说,防止“多端”出现不完整的记录。
参照完整性规则要求:1、不允许在“多端”的字段中输入1个“一端”主键不存在的值;2、如果某一记录有相关的记录存在于关系表中,那么数据库引擎不允许从“一端”删除这个记录(除非选择了级联删除相关字段,这样会同时删除“一端”和“多端”的记录,从而保证数据的完整性),因为如果允许又回出现diyi种情况。3、如果某一记录有相关的记录存在于关系表中,那么数据库引擎不允许改变“一端”主键的值(除非选择了级联更新相关字段,这样会同时更新“一端”和“多端”的主键值,从而保证数据的完整性),因为如果允许又回出现diyi种情况。

不知道以上内容理解否?我再举个例子加以说明。2个表,学生表的主键是学号,成绩表主键是学号和学科,2个表通过“学号”建立关系,学生表肯定是“一段”,成绩表是“多段”。
学生表 成绩表
学号 姓名 地址 电话 学号 学科 分数
1 张三 a 1 1 数学 80
2 李四 b 2 1 语文 70
2 数学 100
现在,假如将“学生表”的学号1更改为3,那么“成绩表”里的“学号为”1的记录是谁的呢?本来是张三的成绩,现在不知道是谁的了,这样就出现数据的不完整,当“实施参照完整性”后,程序不允许这样,就会弹出类似“由于数据表‘dept’需要一个相关记录,不能添加或修改记录”的提示框。当然,如果勾选了“级联更新相关字段”,那么“成绩表”的学号1也会同时更改为3 ,保证了数据的完整性。如果删除了“学生表”的张三整条记录,道理和上面的一样。
另一种情况,假如我们更改的是“多端”的数据,比如,将“成绩表”的“学号”为1的更改为5 ,由于“学生表”里没有“学号”为5的数据,这样的更改是不允许的,同样会弹出错误提示框。同理,如果“成绩表”里添加了一个“学生表”里不存在的学号的相关记录,比如,在“成绩表”添加 6 ,英语 ,60 添加的成绩内容没有对应的人,毫无意义,一样是不允许的。

说了这么多,不知明白否?你的情况很可能是类似我说的Z后一种情况,也就是更改或添加了记录,但另一个表没有相关的记录,你可以对照你2个表的数据,仔细看看。
全部评论
卡就是大方家 发布日期:2013-01-31
约束限制吧
最新主题
相关版块
我要评论
X您尚未登录
账号登录
X您尚未登录
手机动态密码登录
X您尚未登录
扫码登录
官方微信

仪器网微信服务号

扫码获取最新信息


仪器网官方订阅号

扫码获取最新信息

在线客服

咨询客服

在线客服
工作日:  9:00-18:00
联系客服 企业专属客服
电话客服:  400-822-6768
工作日:  9:00-18:00
订阅商机

仪采招微信公众号

采购信息一键获取海量商机轻松掌控