VB编写的如何进行数据过滤,判断输入是字母

麦田守望者 2012-06-05 03:01:48
遇到一个问题,要求keypress事件,对输入的数据进行过滤。如果输入的是字母,则显示输入正确;如果输入的是非字母,则响铃且消除该字符。
这个怎么判断字母呢?按照asc函数?那如果输入的是数字呢?
...全文
646 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
舉杯邀明月 2012-06-07
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
引用 6 楼 的回复:
据说在 VB 中,IF 语句中的逻辑表达式是会全部运算完的。

我觉得这样写运行效率会高些吧:

VB code

Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim i%
i = KeyAscii Or 32
If (i >= 97 And i <= 122) Then
Debug.Print ………

还有小写字母呢?同理啊?

[/Quote]

童鞋,注意这句啊:
i = KeyAscii Or 32

-_-!!!
麦田守望者 2012-06-06
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
据说在 VB 中,IF 语句中的逻辑表达式是会全部运算完的。

我觉得这样写运行效率会高些吧:

VB code

Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim i%
i = KeyAscii Or 32
If (i >= 97 And i <= 122) Then
Debug.Print ……
[/Quote]
还有小写字母呢?同理啊?
of123 2012-06-06
  • 打赏
  • 举报
回复

人机界面,效率应该足够。任何事情要看应用场合。
舉杯邀明月 2012-06-06
  • 打赏
  • 举报
回复
据说在 VB 中,IF 语句中的逻辑表达式是会全部运算完的。

我觉得这样写运行效率会高些吧:
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim i%
i = KeyAscii Or 32
If (i >= 97 And i <= 122) Then
Debug.Print "输入正确!"
Else
KeyAscii = 0
Debug.Print "输入错误!"
End If
End Sub

贝隆 2012-06-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
这样也行:

VB code
Private Sub Text1_KeyPress(KeyAscii As Integer)
If (KeyAscii >= 65 And KeyAscii <= 90) Or (KeyAscii >= 97 And KeyAscii <= 122) Then
Debug.Print "输入正确!"
Else
……
[/Quote]
+1000
东方之珠 2012-06-05
  • 打赏
  • 举报
回复
这样也行:
Private Sub Text1_KeyPress(KeyAscii As Integer)
If (KeyAscii >= 65 And KeyAscii <= 90) Or (KeyAscii >= 97 And KeyAscii <= 122) Then
Debug.Print "输入正确!"
Else
KeyAscii = 0
Debug.Print "输入错误!"
End If
End Sub
libralibra 2012-06-05
  • 打赏
  • 举报
回复
这是标准做法,已经很简单了
麦田守望者 2012-06-05
  • 打赏
  • 举报
回复
这个网上搜到的,有没有对于初学者简单的办法?
东方之珠 2012-06-05
  • 打赏
  • 举报
回复
Private Sub Text1_KeyPress(KeyAscii As Integer)
If Not Chr(KeyAscii) Like "[a-zA-Z]" Then
KeyAscii = 0
Debug.Print "输入错误!"
Else
Debug.Print "输入正确!"
End If
End Sub

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧