Office中国论坛/Access中国论坛
标题:
窗体中如何限制输入数字的长度范围?
[打印本页]
作者:
pwj2009
时间:
2010-1-4 17:23
标题:
窗体中如何限制输入数字的长度范围?
如窗体中有身份证这个框,要显示输入数字要>15位数<20位数。
这样应该怎样设置?[size=4][color=teal]
(VBA基础-相关文章技巧链接):
[url=http://www.office-cn.net/access-vb/267.html]Access 窗体中如何限制输入数字的长度范围?[/url][/color][/size]
作者:
aslxt
时间:
2010-1-4 18:00
身份证应该是文本,否则有的同志的最后一位为英文字母,你就不要他了?
你可以在窗体的更新前事件或框定更新前事件中判断内容的长度,如果为15或18就是合法,否则为非法,例如
Private Sub Form_BeforeUpdate(Cancel As Integer)
If Len(Text0) <> 15 Then
If Len(Text0) <> 18 Then
MsgBox "非法"
Cancel = True
DoCmd.RunCommand acCmdUndo
Text0.SetFocus
End If
End If
End Sub
作者:
pwj2009
时间:
2010-1-4 22:03
当我输入上面那段代码测试后。输入不是15位的时候,弹出提示错误点击后出现以下图片的错误。
作者:
ycxchen
时间:
2010-1-5 08:25
用me.undo
作者:
pwj2009
时间:
2010-1-5 16:57
一样不行啊
作者:
ycxchen
时间:
2010-1-6 09:18
既然有Cancel = True,不要DoCmd.RunCommand acCmdUndo可以吧?
作者:
chuang0321
时间:
2010-1-6 10:59
有此问题,为了避免内部命令之间的相互限制,可以不用cancel、undo,直接重置text0=“”不就得了。
我一般用change事件
作者:
红尘如烟
时间:
2010-1-6 16:45
设输入框名称为Text0
有效性规则属性设为:IsNull(Text0)=True Or ((Len(Nz(Text))>15 And Len(Nz(Text0))<20
有效性文本属性设为:长度只能为15位以上20位以下。
作者:
pwj2009
时间:
2010-1-7 08:25
谢谢楼上们的朋友。
作者:
comcndai
时间:
2010-11-5 16:58
看看吧
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3