Office中国论坛/Access中国论坛

标题: [求助]输入编号自动生成日期的判断问题 [打印本页]

作者: piaoran    时间: 2005-7-28 17:52
标题: [求助]输入编号自动生成日期的判断问题
Private Sub 社员编号_BeforeUpdate(Cancel As Integer)

Dim IntA As Integer, IntB As Integer, Stra As String

Select Case Len(社员编号)

Case 10

   IntA = 4

   Stra = ""

   IntB = 2

Case Else

MsgBox "社员编号位数错误,请重新输入!", , "提示"

Cancel = True

Exit Sub

End Select

If Not IsDate(Stra & Mid(社员编号, 1, IntA) & "/" & Mid(社员编号, 1 + IntA, 2) & "/" & Mid(社员编号, 3 + IntA, 2)) Then

MsgBox "社员编号日期错误!"

Cancel = True

Exit Sub

End If

If (Stra & Mid(社员编号, 1, IntA) & "/" & Mid(社员编号, 1 + IntA, 2) & "/" & Mid(社员编号, 3 + IntA, 2)) > Date Then

MsgBox "如果日期超前,提示社员编号日期错误!"

Cancel = True

Exit Sub

End If

入社时间 = Stra & Mid(社员编号, 1, IntA) & "/" & Mid(社员编号, 1 + IntA, 2) & "/" & Mid(社员编号, 3 + IntA, 2)

End Sub

输入社员编号自动生成入社时间,如果入社时间超前,提示编号错误

以上该如何修改,谢谢
作者: 青青    时间: 2005-7-28 18:15
为什么不将输入“社员编号”改为输入“入社时间”(日期格式)及输入“编号”(后两位的编码)需要显示社员编号时:   [入社时间]&[编号]    而对“入社时间”的检验只须在“有效性规则”中设置一下就可以了,根本不须长长的检验代码。对于您写的这段代码,检验字数是否为10位数,可以只在字段的掩码中设置就可以了,不需要代码的。即使使用代码用if....then....就够了,用不着 Select Case另外,Mid(社员编号, 1, IntA) & "/" & Mid(社员编号, 1 + IntA, 2) & "/" & Mid(社员编号, 3 + IntA, 2)  在代码中重复出现,为什么不用一个变量来保存它的值,这样不须重复读取数据去计算,虽然现在的计算机运算速度很快。


作者: piaoran    时间: 2005-7-28 18:25
[em06]社员编号是唯一的,你说的那样不知道是否能记录到数据库中这个代码是身份证号码那拷贝来的,没有进行过多的修改青青姐姐帮助修改下你的qq呢?方便咨询谢谢




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3