1. 用户管理子模块
(1) 用户管理子模块的IPO图。 输入:用户名、密码和用户类型。 处理流程:
1) 仅当用户类型为系统管理员时可用。 2) 用户信息管理窗体启动。
3) 从用户信息表(tbUser)中读取全部记录并显示在表格控件dgUser中。 4) 根据系统管理员的选择(添加、修改和删除)进行相应处理,具体如步骤5)~7)
5) 添加操作:
?输入用户名、密码和用户类型。
?从用户信息表(tbUser)中检查是否有相应的用户名。
?如果用户不存在,根据数据库中对应字段的定义,检验输入值是否合法,如果
输入有错误则进行错误信息提示,添加处理终止。
?如果输入正确,执行SQL语句,向用户信息表(tbUser)中插入一条记录。 6) 修改操作:
? 通过以下两种方式或得用户名、密码和用户类型:手动输入或者在表格中单击任意单元格,窗体的控件中自动显示被点击记录的用户名、密码和用户类类型。
? 从用户信息表(tbUser)中检查是否有相应的用户名。
? 如果用户名存在,根据数据库中对应字段的定义,检验输入值是否合法,如果输入有错误则进行错误信息提示,修改处理终止。
? 如果输入正确,执行SQL语句,更新用户信息表(tbUser)中应该用户名所对应的记录值。
? 提示用户修改成功信息,刷新界面表格中的数据。 7) 删除操作:
? 通过以下两种获得用户名、密码和用户类型:手动输入或者在表格中单击任
意单元格,窗体的文本框中自动显示被点击记录的用户名、密码和用户类型。 ? 从用户信息表(tbUser)中检查是否有相应的用户名。 ? 如果用户名不存在则进行错误信息提示,处理终止。
? 如果用户名存在,执行SQL语句,删除用户信息表(tbUser)中该用户名所
对应的记录。
? 提示用户删除成功信息,刷新界面表格中的数据。 输出:对用户信息表(tbUser)进行更新。
(2) 用户管理子模块的窗体设计(如图5-3所示)。 (3) 窗体和控件特殊属性设计(见表5-5)
表5-5 窗体和控件特殊属性 控件名称 cboUser 控件属性 Style 设置值 2 (4) 窗体设计。
1)窗体公共变量定义(见表5-6所示)
表5-6窗体公共变量定义
28
变量名称 TxtSQL txtTest rstUser results result str
图5-3 用户管理子模块的窗体效果
变量类型 string string ADODB.Rercordset Boolean string string 说明 更新操作SQL语句 检验数据库中是否存在记录的SQL语句 用户信息数据集 ExexuteSQL ViewData MsgBox 2)窗体加载事件:
处理流程:初始化用户类型列表、调查viewDataUser函数显示表格数据。
Private Sub Form_Load()
cboUser.AddItem (\系统管理员\ cboUser.AddItem (\人力资源主管\ cboUser.AddItem (\普通用户\ Call viewDataUser End Sub
3)记录:每次只能添加一条记录,取值于界面上各控件的内容。 处理流程:
? 顺序检验输入的用户名和密码不能为空,且不能超过数据库中允许的最大
29
长度,否则,处理终止,并给出错误信息,设置相应的TextBox背景变色并获得焦点。
? 检验次用户名在用户信表中是否存在,如果存在,并给出错误信息。 ? 向数据库中添加记录,并提示用户添加成功。 ? 刷新表格中数据。
Private Sub cmdDel_Click()
If txtIsNull(txtUser) Then '检验删除记录是否选定
MsgBox \请选择删除的记录!\警告\ Exit Sub End If
'提示警告信息
str = MsgBox(\是否删除当前记录?\删除当前记录\If str = vbOK Then
txtTest = \UserId from tbUser where UserId ='\+ Trim(txtUser.Text) + \
'检验此用户名是否已经存在 If DBExist(txtTest) = 0 Then
MsgBox \无此用户!\警告\ txtUser.BackColor = BLUE Else
txtSQL = \from tbUser where UserId='\+ Trim(txtUser.Text) + \
results = ExecuteSQL(txtSQL, rstUser, True)
MsgBox \删除成功!\警告\ txtUser.Text = \
txtPassword.Text = \ Call viewDataUser End If End If End Sub
4)修改记录:可以修改用户密码和用户类型,用来重新设置用户权限。 Private Sub cmdModify_Click()
If txtIsNull(txtUser) Then '检验修改记录是否选定
MsgBox \请选择需要修改的记录!\警告\
Exit Sub End If
str = MsgBox(\是否修改当前记录?\删除当前记录\提示警告信息
If str = vbOK Then
txtTest = \UserId from tbUser where UserId ='\+
30
Trim(txtUser.Text) + \
'检验此用户名是否已经存在 If DBExist(txtTest) = 0 Then MsgBox \无此用户,请添加此用户或重新输入用户名!\vbOKOnly + vbExclamation, \警告\
txtUser.BackColor = BLUE Else If IsOverStringLen(txtPassword.Text, 8) Or Trim(txtPassword.Text) = \ MsgBox \密码不能为空且不能超过8位!\vbOKOnly + vbExclamation, \警告\
txtPassword.SetFocus
txtPassword.Bac?Color = BLUE Exit Sub End If
txtSQL = \ txtSQL = txtSQL + \UserPassword = '\+ Trim(txtPassword.Text) txtSQL = txtSQL + \
txtSQL = txtSQL + \where UserId='\+ Trim(txtUser.Text) + \ results = ExecuteSQL(txtSQL, rstUser, True)
MsgBox \修改成功!\警告\ Call viewDataUser End If End If End Sub
5)记录:删除指定记录,关键字取决于用户名TextBox。 处理流程:
? 判断窗体上的用户文本框内容是否为空,如果为空,给出错误信息,处理
终止。
? 提示警告信息:“是否删除当前记录?”,如果不存在,处理终止,并给于
提示信息,用这种方式使用户确认输入的信息无误。 ? 执行SQL语句,删除指定用户名的记录。 ? 提示删除成功信息。
? 清空各个TextBox,刷新表格数据。
6)记录:可以修改用户密码和用户类型,用户重新设置用户权限。关键字取值于用户名TextBox。 处理流程:
? 判断窗体上的用户名TextBox内容是否为空,如果为空,给出错误信息,
处理终止。 ? 提示警告信息:“是否修改当前记录?”,如果选择“确定”,进行以下处
理。
? 检验次用户名在用户信息表中是否存在,如果不 存在处理终止,并给出错
误信息,并将用户名TextBox背景色设置为深蓝色。
31
? 利用公共函数检验输入的密码是否合法(不能为空且位数不能超过数据库
中允许最大值),如果不合法,处理终止,设置密码TextBox获得焦点,背景色深蓝色。
? 生成并执行SQL语句,更新用户信息表的密码字段。 ? 提示修改成功信息,刷新表格数据。 Private Sub cmdModify_Click()
If txtIsNull(txtUser) Then '检验修改记录是否选定
MsgBox \请选择需要修改的记录!\警告\
Exit Sub End If
str = MsgBox(\是否修改当前记录?\删除当前记录\提示警告信息
If str = vbOK Then
txtTest = \UserId from tbUser where UserId ='\+ Trim(txtUser.Text) + \
'检验此用户名是否已经存在 If DBExist(txtTest) = 0 Then MsgBox \无此用户,请添加此用户或重新输入用户名!\vbOKOnly + vbExclamation, \警告\
txtUser.BackColor = BLUE Else If IsOverStringLen(txtPassword.Text, 8) Or Trim(txtPassword.Text) = \ MsgBox \密码不能为空且不能超过8位!\vbOKOnly + vbExclamation, \警告\
txtPassword.SetFocus
txtPassword.BackColor = BLUE Exit Sub End If
txtSQL = \ txtSQL = txtSQL + \UserPassword = '\+ Trim(txtPassword.Text) txtSQL = txtSQL + \
txtSQL = txtSQL + \where UserId='\+ Trim(txtUser.Text) + \ results = ExecuteSQL(txtSQL, rstUser, True)
MsgBox \修改成功!\警告\ Call viewDataUser End If End If End Sub
7)Datagrid的RowColChang事件
本系统中利用TextBox来更新数据库,重要的一点就是可以随意选择表格中而
32