access中导入了数据库文件,其中字段7是证件号码,但是证件号码有多种,我需要筛选出身份证号码的用户来 10
2个回答
展开全部
精确判断,可以编写一个全局自定义判断函数,假设函数名为Is_Id_Num(),严格按照身份证的编码规则判断字段值是否符合相应的规则,然后在SQL语句里调用该函数就可,例如:
select * from 表名 where Is_Id_Num(字段7)=True;
但是编写这个全局自定义判断函数很麻烦,首先您得知道完整的身份证编码规则,其次得有VBA编程能力,其代码量不会太少的,题主有时间的话可以研究一下。
由于精确判断很麻烦,本人建议粗略判断来实施筛选,其结果也可以做到八九不离十。例如:
select * from 表名 where len(字段7)=18 and
isdate(mid(字段7,7,4) & "-" & mid(字段7,11,2) & "-" & mid(字段7,13,2)) =true;
也就是以字符数和是否含有出生日期来判断,这样筛选基本上是准确的,但是不能保证100%准确。
select * from 表名 where Is_Id_Num(字段7)=True;
但是编写这个全局自定义判断函数很麻烦,首先您得知道完整的身份证编码规则,其次得有VBA编程能力,其代码量不会太少的,题主有时间的话可以研究一下。
由于精确判断很麻烦,本人建议粗略判断来实施筛选,其结果也可以做到八九不离十。例如:
select * from 表名 where len(字段7)=18 and
isdate(mid(字段7,7,4) & "-" & mid(字段7,11,2) & "-" & mid(字段7,13,2)) =true;
也就是以字符数和是否含有出生日期来判断,这样筛选基本上是准确的,但是不能保证100%准确。
追问
Q我272546294,没用过access 求教。
追答
建议题主有问题继续提问好了,我尽能力回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询