level 5
根据后台用户表进行登录界面的控制是ACCESS的基本功,很简单。
给你看一下我做的例子,这个例子有很多复杂的东西,我把它们简化后给你参考吧,
假设:
后台有一个sysusetable表,是用户表,有用户账号(account)和密码(accpass)
登录界面有一个填帐号控件useraccount和密码控件userpass,和一个登录按钮,
在按钮的Click事件中写以下这些:
Private Sub CMD01_Click()
'主界面登录按钮
Dim rst As DAO.Recordset
Dim dbs As DAO.Database
Set dbs = CurrentDb
If Trim(Me!useraccount = "") Or IsNull(Me!useraccount) Then
MsgBox ("请输入用户帐号。")
Me!useraccount.SetFocus
Set rst = Nothing
Set dbs = Nothing
Exit Sub
ElseIf Me!userpass = "" Or IsNull(Me!userpass) Then
MsgBox ("请输入用户密码。")
Me!userpass.SetFocus
Set rst = Nothing
Set dbs = Nothing
Exit Sub
Else
’关键语句:
Set rst = dbs.OpenRecordset("select * from sysusetable where trim(account)='" & Trim(Me!useraccount) & "'", dbOpenSnapshot)
If rst.RecordCount = 0 Then
MsgBox ("该用户未注册,请重新输入用户帐号。")
Me!useraccount.SetFocus
Set rst = Nothing
Set dbs = Nothing
Exit Sub
End If
rst.MoveFirst
If Trim(rst.Fields("accpass")) <> Trim(Me!userpass) Then
MsgBox ("该用户密码错误!请重新输入密码。")
Me!userpass.SetFocus
Set rst = Nothing
Set dbs = Nothing
Exit Sub
Else
'登录并切换成主步骤界面
'这里可以写一些成功登录的东东,比果显示“进入系统”按钮,或直接打开第二个主界面等等,
Me.cmd03.SetFocus
Me.cmd02.Visible = True
Me.cmd03.Visible = True
'另外再送你个小功能:一般前况下,我们需要记录当前成功登录者以后打开的每一个界面和操作,那么,可以在主登录窗体页脚处设几个隐藏的控件来传递这些参数,其它窗体也设置相同控件来接收,如:
'登录成功能设置隐含传导字段
Me.opername = rst.Fields("opername") '操作者姓名
Me.operrank = rst.Fields("accrank") '操作者级别
Me.opergroup = rst.Fields("accgroup") '操作者组别
End If
End If
Set rst = Nothing
Set dbs = Nothing
End Sub
2017年08月15日 05点08分
4