苍天呀大地呀,如何才能使用户输入有效化呀!!!???
请先看下面的源码, 是access2003里的:Private Sub cmdOk_Click()
Dim Rst As Recordset
If Me.txtUser & "" = "" Then
msgbox "Please enter you ID!"
txtUser.SetFocus
Exit Sub
End If
If UCase(Me.txtUser) = "ADMIN" Then
Set Rst = CurrentDb.OpenRecordset("select * from tblAdmin Where UserName='" & Me.txtUser & "'")
Else
Set Rst = CurrentDb.OpenRecordset("select * from tblAdmin Where id=" & Me.txtUser)
End If
With Rst
If .RecordCount <> 0 Then
'如果有用户
If !PassWord = Me.txtPsw Then
MyVal.isLogin = True
MyVal.strUser = !UserName
MyVal.strUserID = !id
DoCmd.Close acForm, Me.Name
If !UserLevel = "admin" Then
DoCmd.OpenForm "admin"
Else
DoCmd.OpenForm "Select"
End If
Exit Sub
End If
'关闭窗体
End If
End With
msgbox "Incorrect UserID or Password!"
End Sub
用户名是数据库自动生成的序列号, 1234...等等
这个源码只解决了三种情况:
1 用户名为空白的情况,
2 用户名为admin
3 用户名是在数据库里可以找到其他数字
问题是, 如果用户名不存在呢? 比如随便输入一个数据库里没有的用户名, 程序就会出错
要怎样做才能使这个程序给出正确的错误提示, 然后让用户重新输入呢?
--------------------编程问答-------------------- With Rst
If .RecordCount <> 0 Then
'如果有用户
If !PassWord = Me.txtPsw Then
MyVal.isLogin = True
MyVal.strUser = !UserName
MyVal.strUserID = !id
DoCmd.Close acForm, Me.Name
If !UserLevel = "admin" Then
DoCmd.OpenForm "admin"
Else
DoCmd.OpenForm "Select"
End If
Exit Sub
End If
'关闭窗体
else
msgbox "没有该用户名!"
End If
End With
--------------------编程问答-------------------- 楼上的, 谢了, 但不好用 --------------------编程问答-------------------- 得到用户输入的数据时
先查用户名存在否,这个不会出错,因为使用了字符串
不存在时,请用isnumeric判断是否为数字,是数字,如果是数字,再查ID,这样就不会出错了 --------------------编程问答-------------------- 你直接根据用户输入的数据查找数据库中的记录,如果查询到的结果为0就可以说明不存在啊 --------------------编程问答-------------------- ............................................................... --------------------编程问答-------------------- 太複雜的,誰幫完成。
…… --------------------编程问答-------------------- 唉。。。。
试试这个吧,本身就没有挑战性问题
If UCase(Me.txtUser) = "ADMIN" Then
Set Rst = CurrentDb.OpenRecordset("select * from tblAdmin Where UserName='" & Me.txtUser & "'")
ElseIf IsNumeric(Trim(Me.txtUser)) then
Set Rst = CurrentDb.OpenRecordset("select * from tblAdmin Where id=" & Me.txtUser)
else
msgbox "用户名不存在,请重新输入!"
txtUser.setfocus
exit sub
End If
--------------------编程问答-------------------- 当用户输入0的时候,是不会出错的,数据库的ID字段也是数字型,只是记录找不到而已,你上面的程序已有了判断的方法了 --------------------编程问答-------------------- …… --------------------编程问答-------------------- 呵呵,难道错了? --------------------编程问答-------------------- 没遇到过这种情况.
补充:VB , VBA