vfp 录入时如何避免重复和输入错误的身份证?

cjlearncsharp 2012-07-17 04:52:39
表1中身份证号码等字段,已经有重复的身份证号码,能不能设置一下在以后的录入过程中不允许重复的身份证号码录入?
另外能不能设置一下录入身份证号码后马上校验号码的正确性?
...全文
515 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
infuse 2012-11-25
  • 打赏
  • 举报
回复
居然还有用vfp的
gaoyx163 2012-07-28
  • 打赏
  • 举报
回复
你的这一张表1中,要求不允许重复的身份证号码录入,说明身份证号码一个字段就构成了这一张表1中的“主关键字”,因此必须对这个字段建立“唯一”“索引”,这是关系数据库的基本要求。
当然其他出现身份证号码的表中,它可能和另一些字段组成“主关键字”,也可能不包含在“主关键字”中。

十豆三 2012-07-18
  • 打赏
  • 举报
回复
关于重复问题,写入前先查询一下是否已经有了就可以了,这个不用代码了吧。
校验的问题有 N 多函数,请参考:
<关于身份证号码>
http://blog.csdn.net/apple_8180/article/details/941626
lygcw9602 2012-07-18
  • 打赏
  • 举报
回复
按个人喜好,可以设置索引,也可以不要索引。每次新增或修改记录后,在记录保存时,查询数据表中是否有重复记录。

身份证号码验证方法
http://blog.csdn.net/lygcw9602/article/details/7319339
dfwxj 2012-07-17
  • 打赏
  • 举报
回复
最后一位的校验码就是用来检验前17位是否正确的

第一个问题:设置唯一索引
taohua300 2012-07-17
  • 打赏
  • 举报
回复

验证身份证号代码放在一个放在一个prg文件中
taohua300 2012-07-17
  • 打赏
  • 举报
回复
1. 在添加身份证号之前查询数据库,如果有重复的身份证号则提示 重复
2. 身份证号验证算法,返回 1表示正确的身份证号
Lparameters lcString
If Len(Alltrim(lcString)) != 18
Return 0
Endif
Dimension quan(17)
quan(1)=7
quan(2)=9
quan(3)=10
quan(4)=5
quan(5)=8
quan(6)=4
quan(7)=2
quan(8)=1
quan(9)=6
quan(10)=3
quan(11)=7
quan(12)=9
quan(13)=10
quan(14)=5
quan(15)=8
quan(16)=4
quan(17)=2

sn = 0
For i = 1 To 17
sn = sn + Val(Substr(lcString,i,1)) * quan(i)
Next

lnTemp = Int(Mod(sn,11)) &&计算最后一个验证码
lcYan = 'a'
If lnTemp == 0
lcYan = '1'
Else
If lnTemp == 1
lcYan = '0'
Else
If lnTemp = 2
lcYan = 'X'
Else
lcYan = Transform(12 - lnTemp)
Endif
Endif
Endif

If Right(lcString,1) != lcYan
Return 0
Endif
If !Left(lcString,2) $ '11,12,13,14,15,21,22,23,31,32,33,34,35,36,37,41,42,43,44,45,46,50,51,52,53,54,61,62,63,64,65,71,81,82 '
Return 0
Endif
If Val(Substr(lcString,7,4)) <= 1950
Return 0
Endif

If Year(Date()) - Val(Substr(lcString,7,4)) < 15
Return 2
Endif

If Val(Substr(lcString,11,2)) < 1 Or Val(Substr(lcString,11,2)) > 12
Return 0
Endif
If Val(Substr(lcString,13,2)) < 0 Or Val(Substr(lcString,13,2)) > 31
Return 0
Endif
Return 1

2,723

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧