Access:数据完整性规则已经更改;现有数据对新规则也许无效 什么时候选择“是”,什么时候选择“否”?
情况是这样的,当修改数据表有效性规则并保存修改时(包括表级和字段级有效性规则),如果数据表已经保存有记录,那么系统就会弹出题主提问中贴出的那个警告提示框,这是因为表中已有的记录是在新有效性规则实施前插入的,未经新规则检验过,可能存在与新规不相符合的数据。
该警告提示框有三个选项按钮
1)点击“取消”将放弃本次保存操作;
2)点击“否(N)”将不再检测已有的记录是否与新规则有冲突并保存新的有效性规则,这样此后插入或更新的数据将按新规则实施检测,原有可能与新规则冲突的记录会被继续保留,这些记录今后可以被删除和修改,但是如果是修改的话只能修改为新规则允许的值,否则只能放弃对原有有冲突记录的修改操作;
3)点击“是(Y)”系统将会对已有记录进行是否符合新有效性规则检测,如果检测未发现存在任何冲突系统将不再做任何提示并保存这次修改有效性规则操作,反之将进一步弹出下图警告提示框
如果点击“取消”后果将与在之前的警告提示框点击“否(N)”一样,请见上面选项按钮 "2)"
如果点击“否(N)”新的有效性规则将被还原为原来的有效性规则,等于未做任何事情
点击“是(Y)”系统会继续做剩余的有效性规则检测,如果还有冲突的话将继续重复弹出第二个警告提示框,否则将完成测试并保存新的有效新规则,有冲突的记录还会被继续保留。
总结:
第一个提示框,点击按钮“否(N)”将不再实施已有记录的有效性规则检测,直接保存新的有效性规则。点击按钮“是(Y)”会实施已有记录的有效性规则检测,操作者可以知道是否存在冲突,并可以在发现有冲突的情况下自行决定是否保存新的有效性规则或者恢复原有的有效性规则。
一句话,如果您认为原有记录与新规则有冲突也无所谓,那么就选择点击按钮“否(N)”反之就选择点击按钮“是(Y)”,这样您还有机会放弃新的有效性规则,注意是有机会“放弃修改规则”!。
但是请记住不管是选择“是(Y)”还是“否(N)”,如果新的有效性规则最终被成功保存,已有的记录还是都会被继续保存下来,不管冲突存在与否。因此如果完全不允许数据表存有效性规则冲突的话,最好是先删除那些有冲突的记录,然后才进行有效性规则修改。