在表单中如何通过文本框中的“身份证号”在另一文本框显示“出生日期”
请问各位老师,我想在表单中通过文本框中的“身份证号”在另一文本框显示“出生日期”。不知如何实现?
程序代码:
if len(sfzh)=18 thisfrom.text2.value=subs(sfzh,7,8) else thisfrom.text2.value='19'+subs(sfzh,7,6) endif
Thisform.AddProperty("Sfzh","") && 为表单增加一个属性,用于保存Text1.Value
With Thisform .Sfzh=Alltrim(.Text1.Value) * 判断.Text1.Value 值中是否有非数字字符 If Len(Chrtran(.Sfzh,"0123456789",""))!=0 =Messagebox("身份证中含有非数字字符") Return .Text1 Endif * 判断身份证长度 If Not Inlist(Len(.Sfzh),15,18) =Messagebox("身份证长度必须 15位或18位") Return .Text1 Endif .Sfzh=Iif(Len(.Sfzh)=18,Substr(.Sfzh,7,8),"19"+Substr(.Sfzh,7,6)) * 判断年份 If Not Between(Val(Left(.Sfzh,4)),1900,Year(Date())) =Messagebox("年份必须在 1900-"+Transform(Year(Date()))+" 之间") Return .Text1 Endif * 判断月份 If Not Between(Val(Substr(.Sfzh,5,2)),1,12) =Messagebox("月份必须在 1-12 之间") Return .Text1 Endif * 判断日 nDay=Day(Gomonth(Date(Val(Left(.Sfzh,4)),Val(Substr(.Sfzh,5,2)),1),1)-1) If Not Between(Val(Substr(.Sfzh,7,2)),1,nDay) =Messagebox("天数必须在 1-"+Transform(nDay)+" 之间") Return .Text1 Endif Endwith
Thisform.Text2.Value=Ctod(Transform(Thisform.Sfzh,"@R 9999-99-99"))