Office中国论坛/Access中国论坛

标题: access 多记录 唯一值的确定 [打印本页]

作者: l296233    时间: 2012-5-9 11:25
标题: access 多记录 唯一值的确定
假如有这样一个表,例如:
姓名    学历    是否最高学历   毕业时间
王五    中专    false
王五    大专    false
王五    本科    true
王五    高中    false

记录中“姓名”相同,只有一个,记录数则不一定几个。请问:如何保证“是否最高学历”字段只有一个“true”?
作者: Henry D. Sy    时间: 2012-5-9 12:29
把姓名和是否最高学历同时设置为主键
作者: aslxt    时间: 2012-5-9 12:32
在更新【是否最高学历】到true前,检查一下原有记录中王五的【是否最高学历】的总计值是否等于0,如果等于0则更新,反之则提示不能更新
作者: aslxt    时间: 2012-5-9 12:34
另外,毕业时间也是一个可以利用的字段。通常不会有最高学历的毕业时间会小于其他学历的毕业时间。
例如,博士后都毕业了,不可能再去读本科
作者: l296233    时间: 2012-5-9 15:20
谢谢2位大师的指点。
或许还要再改进改进!
可能只有靠检查更新的办法实现了。
作者: todaynew    时间: 2012-5-9 19:35
1、删除最高学历字段;
2、建立一个学历表,结构为:学历ID(主键,int类型),学历。在该表中写入数据为:
学历ID        学历
0        文盲
1        小学
2        初中
3        高中
4        中专
5        大专
6        大本
7        硕士
8        博士
3、在原表中加入学历ID(外键),并在学历ID的属性中设置查阅,数据源为学历表,2字段,字段长度为0cm,1cm。

4、写最高学历查询如下:
select 姓名,max(学历ID) as 学历,max(毕业时间) as 毕业时间
from 阁下的表名称
ground By 姓名

5、如果对以上处理不能理解的话,可以在现有数据表的基础上,写如下查询:
select 姓名,dlookup("学历","阁下的数据表名称","毕业时间=#" & 最高学历毕业时间 & "#"),max(毕业时间) as 最高学历毕业时间
from 阁下的表名称
ground By 姓名




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3