Office中国论坛/Access中国论坛

标题: 自己做的登录界面代码 [打印本页]

作者: GEEEK    时间: 2021-4-9 23:56
标题: 自己做的登录界面代码
ption Compare Database

Dim i As Integer


'方法一=============================================================================
'Private Sub DL_Click()
'If YHM <> "" And mm <> "" Then
'    If Me.mm = DLookup("password", "User_information", "user='" & Me.YHM & "'") Then
'        MsgBox "登录成功"
'        DoCmd.Close acForm, Me.Name
'        DoCmd.OpenForm "home", acNormal
'    Else
'        MsgBox "账号或密码错误,请重新输入"
'    End If
'Else
'MsgBox "请输入账号和密码"
'End If
'End Sub
'方法二==============================================================================
Private Sub DL_Click()
    Dim db1 As DAO.Database
    Dim rs1 As DAO.Recordset
    Set db1 = CurrentDb()
    Dim SQL_str1 As String
    SQL_str1 = "select user,password,mmsd,mmcz from User_information where user='" & YHM & "'"
    Set rs1 = db1.OpenRecordset(SQL_str1, dbOpenDynaset)

If Me!YHM = Null Then
    MsgBox "用户名不能为空"
    YHM.SetFocus
    Exit Sub
ElseIf Me!MM = Null Then
    MsgBox "请用户密码不能为空"
    MM.SetFocus
    Exit Sub
ElseIf rs1.EOF = True Then
    MsgBox "账户不存在!"
    Exit Sub
Else
    rs1.MoveFirst
    If rs1.Fields(1) = MM Then
    userid = Me!YHM
        If 1 = rs1!mmsd Then
            MsgBox "此账户已被锁定!请联系管理员解锁"
            Exit Sub
        ElseIf 1 = rs1!mmcz Then
            DoCmd.Close acForm, Me.Name
            DoCmd.OpenForm "Password_reset", acNormal
            Exit Sub
        Else
            MsgBox "登录成功"
            DoCmd.Close acForm, Me.Name
            DoCmd.OpenForm "Home", acNormal
        End If
        
    Else
        If i < 2 Then
            i = i + 1
            MsgBox "密码不正确!你还有" & 3 - i & "次机会"
        Else
            MsgBox "密码输入错误3次,已锁定!请联系管理员解锁"
            rs1.Edit
            rs1!mmsd = 1
            rs1.Update
            Exit Sub
        End If
    End If
End If

rs1.Close
Set rs1 = Nothing
db1.Close
Set sb1 = Nothing
Exit Sub
End Sub
Private Sub Form_Load()
Me!YHM.SetFocus
'Me!YHM.Value = userhc
End Sub



Private Sub TC_Click()
    DoCmd.Close
End Sub


作者: roych    时间: 2021-4-11 17:03
1、出于节省代码的考虑,判断用户名、密码是否为空,一般可以合起来提示“用户名或密码为空”。
2、此外,是否需要关闭登陆窗体,值得商榷。毕竟后面很多操作可能需要读取用户名(比如,有些操作是基于用户所在的分组而授权的)。我一般是隐藏登录窗体,后面的权限分配或者数据源处理则基于该用户而定。当然,也可以用公共变量来存放这些数据。但代码量会增加不少,此外,是否会因网络问题而导致一些意外也不好说。
作者: q290014374    时间: 2021-5-28 12:09
学习学习

作者: wuwu200222    时间: 2021-10-20 10:36
学习

作者: GOODWIN    时间: 2021-11-13 10:50

学习




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3