易表在线答疑技术与交流用户社区 → 如何控制身份证号字段录入?


  共有6410人关注过本帖树形打印复制链接

主题:如何控制身份证号字段录入?

帅哥哟,离线,有人找我吗?
wjq1072
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:16190 积分:125850 威望:1 精华:0 注册:2006/8/12 12:29:00
  发帖心情 Post By:2011/2/19 13:04:00 [显示全部帖子]

发示例文件上来

 回到顶部
帅哥哟,离线,有人找我吗?
wjq1072
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:16190 积分:125850 威望:1 精华:0 注册:2006/8/12 12:29:00
  发帖心情 Post By:2011/2/19 13:35:00 [显示全部帖子]

下面引用由sjbssd2011/02/19 11:47am 发表的内容:
要求:
1、长度控制:只能是15或18位;
2、15位的第7至12位、18位第9位至14位年月日必须正确。
总之必须符合规定。

1、设置身份证列操作公式:
If([身份证]="" Or Len([身份证])=15 Or Len([身份证])=18,"",MsgBox("号码错误!",0) And SetCellText(Grid,Row,"身份证",""))

2、增加一时间型辅助列k:

设置k列刷新公式:
If([身份证]="","",If(Len([身份证])=15,"19"+Mid([身份证],6,2)+"-"+Mid([身份证],8,2)+"-"+Mid([身份证],10,2),Mid([身份证],6,4)+"-"+Mid([身份证],10,2)+"-"+Mid([身份证],12,2)))

设置k列操作公式:
If(ISDATE([k])=TRUE Or Text([k])="","",MsgBox("日期错误!",0) And SetCellText(Grid,Row,"身份证","") And SetCellText(Grid,Row,"k",""))


 回到顶部
帅哥哟,离线,有人找我吗?
wjq1072
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:16190 积分:125850 威望:1 精华:0 注册:2006/8/12 12:29:00
  发帖心情 Post By:2011/2/22 14:22:00 [显示全部帖子]

[这个贴子最后由wjq1072在 2011/02/24 09:15am 第 1 次编辑]

不增加辅助列,直接设置身份证列操作公式试试?
If([身份证]="","",If(Len([身份证]) <> 15 And Len([身份证]) <> 18,MsgBox("号码错误!",0) And SetCellText(GridName,Row,"身份证",""),If(Len([身份证])=15 And IsDate(Date("19"+Mid([身份证],6,2)+"-"+Mid([身份证],8,2)+"-"+Mid([身份证],10,2)))= True ,"",If(Len([身份证])=18 And IsDate(Date(Mid([身份证],6,4)+"-"+Mid([身份证],10,2)+"-"+Mid([身份证],12,2)))= True ,"",MsgBox("日期错误!",0) And SetCellText(GridName,Row,"身份证","")))))

 回到顶部
帅哥哟,离线,有人找我吗?
wjq1072
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:16190 积分:125850 威望:1 精华:0 注册:2006/8/12 12:29:00
  发帖心情 Post By:2011/2/24 9:15:00 [显示全部帖子]

用5楼公式试试?

 回到顶部