限制text文本的输入类型
1.联系电话必须为11位
If Len(txtTel.Text) <> 11 Then
MsgBox "电话位数不对,请输入正确的电话!", vbOKOnly + vbExclamation, "警告"
txtTel.Text = ""
txtTel.SetFocus
Exit Sub
End If
2.文本框只能输入数字
Private Sub txtSID_KeyPress(KeyAscii As Integer)
If KeyAscii = 8 Then 'ascii码=8是退格 Asc(a)函数是将a转为ASCII码
ElseIf KeyAscii < Asc("0") Or KeyAscii > Asc("9") Then
KeyAscii = 0
End If
end sub
不知道大家是否还记得asc函数,chr函数,val函数的区别,想要知道的可以去看我这篇博客呦点击这里。
3.限制特殊符号
法一:
Private Sub txt?_KeyPress(KeyAscii As Integer)
'限制特殊字符
If ((KeyAscii >= 48 And KeyAscii <= 57) Or (KeyAscii >= 65 And KeyAscii <= 90) Or _
(KeyAscii >= 97 And KeyAscii <= 122) Or (KeyAscii = 8)) = flase Then KeyAscii = 0
End Sub
法二:
Private Sub Text1_KeyPress(KeyAscii As Integer)
dim cTemp as string
cTemp = "#$%^&*!@《》,。" '双引号里面输入想要禁止输入的字符
if instr(1,cTemp,chr(KeyAscii)) <> 0 then keyascii = 0
End Sub
但是这一个方法有一个缺陷就是,不能限制" ",如果你在里面输入” vb会默认这个语句结束了。 instr函数查找字符. CHR将Ascii码转换为字符.
3.只能输入汉字
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii >= -20319 And KeyAscii <= -3652 Or KeyAscii = 8 Then
Else
KeyAscii = 0
End If
End Sub
不知道有没有小伙伴跟我一样好奇为什么汉字的ascii码范围是-20319-(-3652)这个范围内,我在网上查阅了一下资料,相对的说,我感觉这个链接里的东西较为全面,好奇的请点击这里。
4.判断是否输入数字
If Not IsNumeric(Trim(txtSID.Text)) Then
MsgBox "请输入数字!", vbOKOnly + vbExclamation, "警告"
txtSID.SetFocus
Exit Sub
End if
isnumeric( )检测字符串是否只由数字组成,如果字符串中只包括数字,就返回Ture,否则返回False。
5.判断成绩是否正常
If txtResult > 100 Or txtResult < 0 Then
MsgBox "分数不正常,请重新输入!", vbOKOnly + vbExclamation, "警告"
txtResult.Text = ""
txtResult.SetFocus
Exit Sub
End If
6.判断出生日期是否大于入校日期
If DTPickerBorn.Value > DTPickerRu.Value Then
MsgBox "入校时间大于出生日期!", vbOKOnly + vbExclamation, "警告"
DTPickerBorn.SetFocus
end if
这里对日期使用的是DTpicker控件,不再是文本框,在之后我会发一篇有关此控件使用以及注意事项,请大家关注呦~,我也会修改此博客的。
小知识:
instr函数的引用:
instr( string1, string2, start_position,nth_appearance )
参数
● string1:源字符串,要在此字符串中查找。
●string2:要在string1中查找的字符串 。
●start_position:代表string1 的哪个位置开始查找。此参数可选,如果省略默认为1. 字符串索引从1开始。如果此参数为正,从左到右开始检索,如果此参数为负,从右到左检索,返回要查找的字符串在源字符串中的开始索引。
●nth_appearance:代表要查找第几次出现的string2. 此参数可选,如果省略,默认为 1.如果为负数系统会报错。
需要注意的是:
1.位置索引号从1开始。
2. 如果String2在String1中没有找到,instr函数返回0
例如:SELECT instr('syranmo','s') FROM dual; -- 返回 1
SELECT instr('syranmo','ra') FROM dual; -- 返回 3
SELECT instr('syran mo','at',1,2) FROM dual; -- 返回 0