楼上各位高手请指教:我的问题是在文本框中输入数字或字母时发生错误,程序的查询等操作都没问题,而且别的程序并不发生这样的错误,以下时发生问题的代码: Private Sub txtUser_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) End Sub
//Private Sub txtUser_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) End Sub这段代码没有问题我估计是你的系统出现问题了,这样试试: Private Sub txtUser_KeyPress(KeyAscii As Integer) KeyAscii = vba.Asc(vba.UCase(vba.Chr(KeyAscii))) End Sub
另外,看你的程序,就是自动在输入小写字符时将其转为大写字符,下面的程序可以满足你的要求:Option Explicit Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long Private Const GWL_STYLE = (-16) Private Const ES_UPPERCASE = &H8&Private Sub Form_Load() Dim style As Long style = GetWindowLong(txtUser.hwnd, GWL_STYLE) style = style Or ES_UPPERCASE Call SetWindowLong(txtUser.hwnd, GWL_STYLE, style) End Sub
免费的学习、交流、源码、工具网站,欢迎大家访问!
http://www.j2soft.cn/
如果就这里有问题,你把它DEL掉,在建一个TEXT文本筐试试
Private Sub txtUser_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub
KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub这段代码没有问题我估计是你的系统出现问题了,这样试试:
Private Sub txtUser_KeyPress(KeyAscii As Integer)
KeyAscii = vba.Asc(vba.UCase(vba.Chr(KeyAscii)))
End Sub
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Const GWL_STYLE = (-16)
Private Const ES_UPPERCASE = &H8&Private Sub Form_Load()
Dim style As Long
style = GetWindowLong(txtUser.hwnd, GWL_STYLE)
style = style Or ES_UPPERCASE
Call SetWindowLong(txtUser.hwnd, GWL_STYLE, style)
End Sub