学生优化(一)------输入文本限制

限制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

发布了31 篇原创文章 · 获赞 4 · 访问量 2302

猜你喜欢

转载自blog.csdn.net/weixin_44663188/article/details/100008985
今日推荐