注意:重新建立一个窗体,把下面非红色文字粘贴到代码区即可。蓝色文字是控件的名称,如果你添写身份证号的控名称是“证件号码”,那要把下面所有的“身份证号码”改为“证件号码”。可以把库发给我,我帮你做。
http://gy0503.id666.com 我的主页,支持一下点击率,上面有美女的。
我的邮箱:gy0503@126.com
1、先把下列代码复制到代码窗口任意位置 :
Function idcode(sCode15 As String) As String
Dim i As Integer
Dim num As Integer
Dim code As String
num = 0
idcode = Left(sCode15, 6) + "19" + Right(sCode15, 9)
For i = 18 To 2 Step -1
num = num + (2 ^ (i - 1) Mod 11) * (Mid(idcode, 19 - i, 1))
Next i
num = num Mod 11
Select Case num
Case 0
code = "1"
Case 1
code = "0"
Case 2
code = "X"
Case Else
code = Trim(Str(12 - num))
End Select
idcode = idcode + code
End Function
2、如果你的数据很多,在成为当前的代码里,把15位号变为18位,再根据18位号码让性别显示男或女,然后设置计时器,在计时器触发事件里写入进入下一记录的代码,这样当你加载窗体里,数据会自动移动并更新,但到最后一条记录里会出现错误,因为到最后一条时,下一条记录是新添加记录,不过没关系,出现错误时按结束就行了。Private Sub Form_Current()
'在成为当前中添加代码
Dim gy As String '声明变量
If Len(
身份证号码) = 15 Then
gy = idcode(Me.
身份证号码) '引用上面的声明,将15位身份证号变为18位
身份证号码 = gy
Me.
性别 = IIf(Val(Mid(gy, 17, 1)) / 2 = Int(Val(Mid(gy, 17, 1)) / 2), "女", "男") '根据身份证号显示性别
ElseIf Len(
身份证号码) = 18 Then
Me.
性别 = IIf(Val(Mid(Me.
身份证号码, 17, 1)) / 2 = Int(Val(Mid(Me.
身份证号码, 17, 1)) / 2), "女", "男")
Else
MsgBox "输入的身份证位数不正确!", 46, "提示"
End If
End Sub
Private Sub Form_Load()
’窗体加载事件
Me.TimerInterval =1 '设置计时器
End Sub
Private Sub Form_Timer()
'计时器触发
DoCmd.GoToRecord , , acNext '进入下一条记录
End Sub
[此贴子已经被作者于2006-2-19 9:55:57编辑过]