现有用户登录界面如下:
窗体中名为username的文本框用于输入用户名,名为pass的文本框用于输入用户的密码。用户输入用户名和密码后,单击“登录”名为login的按钮,系统查找名为“密码表”的数据表,如果密码表中有指定的用户名且密码正确,则系统根据用户的“权限”分别进入“管理员窗体”和“用户窗体”;如果用户名或密码输入错误,则给出相应的提示信息。密码表中的字段均为文本类型,密码表数据如下图所示。
单击“登录”按钮后相关的事件代码如下,请补充完整。
Private Sub login_Click()
Dim str As String
Dim rs AS New ADODB.Recordset
Dim fd AS ADODB.Field
Set cn=CurrentProject.Connection
logname=Trim(Me! uscrname)
pass=Trim(Mc! pass)
If Len(Nz(logname))=0 Then
MsgBox"请输入用户名"
Elself Len(Nz(pass)=0 Then
MsgBox"请输入密码"
Else
str="select * from密码表where用户名=" & logname &" and密码="& pass &" "
rs.Open str,cn,adOpenDynamic,adLockoptimistic,adCmdText
If______Then
MsgBox"没有这个用户名或密码输入错误,请重新输入"
Me.username" "
Mc.pass=" "
Else
Set______=rs.Fields("权限")
If fd="管理员"Then
DoCmd.Close
DoCmd.OpenForm"管理员窗体"
MsgBox"欢迎您,管理员"
Else
DoCmd.Close
DoCmd.OpenForm"用户窗体"
MsgBox"欢迎使用会员管理系统"
End If
End If
End If
Fnd Sub
参考答案:rs.eof fd
解析: ADO(ActiveX数据对象)可以对来自多种数据提供者的数据进行读和写操作。本题中rs就是一个ADO对象,第一个空白处的条件应该是查找完整个数据表都没有找到相关记录,而前面执行的select语句就是查找语句,如果查找成功,则数据表的当前记录指针将停留在当前查找到的记录上,若没有找到,则当前记录指针将停留在eof区,所以第一个空白处应填写rs.eof第二个空白比较简单,由下文可以看出,fd这个变量代表权限进行比较,同时,在前面没有对fd变量进行赋值的语句,所以第二个空白处应填写fd。