access, 数据的有效性规则问题

数据表中有文本型字段[覆膜厂],其中有一个值是“无”。当此字段的值不等于“无”时,也就是选择了一个覆膜厂,要求另外三个字段[光膜]、[亚膜]、[过油],必须有、而且只能有... 数据表中有文本型字段[覆膜厂], 其中有一个值是“无”。当此字段的值不等于“无”时,也就是选择了一个覆膜厂,要求另外三个字段[光膜]、[亚膜]、[过油],必须有、而且只能有一个选择“是”。
如果不选,提示“请选择覆膜方式!”,如果选择了两个以上,则提示“覆膜方式不能重复选择!”。该如何设置呢?三个字段的类型都是“是/否”类型。
展开
 我来答
BuddhaQQ
2012-12-14 · TA获得超过1763个赞
知道小有建树答主
回答量:860
采纳率:100%
帮助的人:980万
展开全部
建议你调整表设计,看你描述原先应该有4个相关字段:
[覆膜厂]、[光膜]、[亚膜]、[过油]
建议改为[覆膜厂]、[覆膜方式]两列,
1. 打开设计视图打开表,[覆膜方式]列下方字段属性的"有效性规则"处设置:
='光膜' Or ='亚膜' Or ='过油'
然后在"有效性文本"(违反规则后提示的文本)处写:覆膜方式必须为[光膜]、[亚膜]、[过油]中的一种!
2. 在设计视图任意列右键->属性,打开“表属性”窗口,在"有效性规则"处设置:
(IsNull([覆膜厂]) And IsNull([覆膜方式])) Or (Not IsNull([覆膜厂]) And Not IsNull([覆膜方式]))
然后在表属性的有效性文本中写:[覆膜厂]、[覆膜方式]必须同时输入
(实现你说的列相关约束)
如果不愿意改表设计,把第2步中的[覆膜方式]条件改为你原先的三个列即可
更多追问追答
追问
多谢耐心解答。因为【光膜】【亚膜】【过油】分别具有单价,要参与计算。在不更改表的设计的前提下,是不是只要:
(IsNull([覆膜厂]) And IsNull([覆膜方式])) Or (Not IsNull([覆膜厂]) And Not IsNull([覆膜方式]))

就好呢?该如何修改呢?请费心指点下一,谢了!
追答
如果不改变,就是这样,全空,或覆膜厂非空,三种工艺三选一,逻辑上罗嗦点,如下:
(
IsNull([覆膜厂]) And IsNull([光膜]) And IsNull([亚膜]) And IsNull([过油])
)
Or
(
Not IsNull([覆膜厂]) And Not IsNull([光膜]) And IsNull([亚膜]) And IsNull([过油])
)
Or
(
Not IsNull([覆膜厂]) And IsNull([光膜]) And Not IsNull([亚膜]) And IsNull([过油])
)
Or
(
Not IsNull([覆膜厂]) And sNull([光膜]) And IsNull([亚膜]) And Not IIsNull([过油])
)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式