5.4.1 登录功能实现
添加普通窗体,修改名为frmLogin.frm作为登录窗体,登录功能界面参见图5-1。
注意:frmLogin.frm窗体是通过Sub Main启动的,是第一个启动的窗体
该窗体界面绘制起来比较简单,需要注意的有以下一些地方:(1)窗体是普通窗体,不是MDI子窗体,也就是MDIChild属性采用默认值False;(2)窗体的ControlBox属性设置为False,即不显示最大、最小、关闭按钮;(3)圆角矩形用Shape控件画出,属性Shape值选择4即可;FillStyle值设置为0后,可通过FillColor设置填充色。(4)输入密码的文本框的PasswordChar属性要设置密码掩码;一般采用“*”符号。
列表控件Combolbox名为“dbUserId”;输入密码的文本框名为“txtPasswd”;登录按钮名为“cmdLogin”,取消按钮名为“cmdCancel”。
登录功能代码如下:
代码5-4 登录窗体frmLogin.frm代码
′****************************************************************************
Option Explicit ′强制类型检查约定
Private Sub Form_Load() ′登录窗体加载
On Error Resume Next
Move(Screen.Width-Width)\2,(Screen.Height-Height)\2
′通过计算定位窗体的位置
txtPasswd=″″
Dim i As Integer
For i=0To rsUser.RecordCount
′rswUser为modDatabase模块中的记录集 用来存用户ID值
dbUserId.AddItem rsUser(0)
′使用循环结构将所有用户的ID值添加到下拉列表中
rsUser.MoveNext
If rsUser.EOF=True Then ′如果记录集为空 则加载用户信息失败
rsUser.MoveLast
dbUserId.ListIndex=0′
Exit Sub
End If
Next i
End Sub
′检查与用户匹配的密码 实现登录功能
Private Sub cmdLogin_Click() ′登录按钮点击事件
On Error Resume Next
rsUser.Close ′加载完用户ID后暂时关闭该记录集
rsUser.Open″Select passwd from users where user_id=′″&dbUserId.Text
&″′″,cn,adOpenDynamic,adLockOptimistic
′重新加载记录集 查询跟用户对应的密码项
If rsUser.EOF<>True Then ′如果检索到的记录不为空
If rsUser(0)=txtPasswd Then ′核对密码
sUserName=UCase(dbUserId.Text)
frmMain.status.Panels(1).Text=″用户名:″&sUserName
′将用户名信息添加到状态栏
DoEvents
′仅允许Admin有权限使用主窗体的“参数设置”菜单项
If sUserName<>″ADMIN″Then ′检查是否是Admin用户
frmMain.mnuSetting.Enabled=False
Else
frmMain.mnuSetting.Enabled=True
End If
Unload Me
DoEvents
frmMain.Show ′信息核对正确则主窗体打开
DoEvents
Exit Sub
rsUser.Close
Else ′密码核对不正确
MsgBox″密码无效!!!″&vbCrLf &″注意:请正确输入密码!″,vbInformation,″提示″
txtPasswd.Text=″″
txtPasswd.SetFocus
Exit Sub
End If
End If
End Sub
′取消登录按钮功能
Private Sub cmdCancel_Click()
On Error Resume Next
End
End Sub
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。