现有用户登录界面如下: 窗体中名为usemame的文本框用于输入用户名:名为pass的文本框用于输入用户的密码。用户输入用户名和密码后,单击“登录”名为login的按钮,系统查找名为“密码表”的数据表,如果密码表中有指定的用户名且密码正确,则系统根

admin2009-08-25  29

问题 现有用户登录界面如下:

   窗体中名为usemame的文本框用于输入用户名:名为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!username)
   pass=Trim(Me!pass)
        If Len(Nz(logname)=0 Then
           MsgBox"请输入用户名"
       ElseIf 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.usemame=" "
                Me.pass=" "
             Else
                Set【  】=rs.Fields("权限")
                If fd="管理员"Then
                   DoCmd.Close
                   DoCmd.OpenForm"管理员窗体"
                   MsgBox "欢迎您,管理员"
                Else
                   DoCmd.Close
                   DoCmd.OpenForm "用户窗体"
                   MsSBox  "欢迎使用会员管理系统"
                End If
           End If
       End If
   End Sub

选项

答案rs.eof fd

解析 通过“str="select*from密码表where用户名="’& logname  &"’and密码=’ "& pass  &" ’ "”,可以判断出下面的条件语句是在遍历密码表后,判断表中是否有用户输入的用户名和密码,所以第14空填“rs.eof”, rs是记录集,eof函数是指当前记录位置位于Recordset对象的最后一个记录之后,属性返回布尔型值。即:遍历密码表,判断结果,如果查找到密码表的最后一条记录,仍然没有找到输入的用户名及密码,则提示用户“没有这个用户名或密码输入错误,请重新输入”。如果找到输入的用户名及密码,则通过else中的语句获取用户的权限赋值权限变量fd,所以第15空应该填:fd。
转载请注明原文地址:https://kaotiyun.com/show/zbwp777K
0

最新回复(0)