请教一道二级ACCESS的笔试题目(2010年3月考的)
Private Sub Textl_KeyPress(KeyAscii As Integer)
Select Case DeyAscii
Case 97 To 122
Debug.Print Ucase(Chr(KeyAscii));
Case 65 To 90
Debug.Print Lcase(Chr(KeyAscii));
Case 48 To 57
Debug.Print Chr(KeyAscii);
Case Else
KeyAscii = 0
End Select
End Sub
答案是456aBc
求高手的详细解答
万分感谢!
【9】是题目序号 展开
Private Sub Textl_KeyPress(KeyAscii As Integer)
Select Case DeyAscii //select条件语句
Case 97 To 122 //ascii码在97-122时[包含97和122,十进制,下同]
Debug.Print Ucase(Chr(KeyAscii)); //将该ASCII码值所代表的字符变大写并输出
Case 65 To 90 //ascii码在65-90时
Debug.Print Lcase(Chr(KeyAscii)); //将该ASCII码值所代表的字符变小写并输出
Case 48 To 57 //ascii码在48-57时
Debug.Print Chr(KeyAscii); //输出该ASCII码值所代表的字符
Case Else
KeyAscii = 0
End Select
End Sub
ASCII 97-122 对应小写字母a-z
65-90 对应大写字母A-Z
48-57 对应数字0-9
所以这段代码就是把输入的字符串中的大写变小写,小写变大写,数字不变
附你一张ASCII表
Case 97 To 122是说如果按键的Ascii码在97和122之间(对应的ASCII码表,按下的键应该是a-z。
Debug.Print Ucase(Chr(KeyAscii))是说,将输入的Ascii码转换成字符(因为VB程序接受的键盘按键消息只接受ascii码,它不知道是哪个键按下,只知道那个按键对应的ascii码),chr(keyascii)就是将接受到的ascii码转换成对应字符,Ucase是把小写的变成大写的,Lcase是把字符变成小写的。debug.print是在立即窗口输出。
当你输入4的时候,由于其ascii码是52,所以执行Debug.Print Chr(KeyAscii),将字符4显示在立即窗口上,5,6类似
输入A时,其asicii码是65,故执行Debug.Print Lcase(Chr(KeyAscii));,先将A转换成小写再输出,bc则是转换成大写。
希望你能明白
AC的asc为65,67属于65-90范围以小写输出为ac,
b的asc为98 属于97-122范围,以大写输出B
所以结果为456aBc