您的位置:首页 > 其它

第一次机房收费系统--修改密码

2016-09-27 21:16 281 查看

前言

修改密码这个模块是机房中进行的比较早的部分,因为和学生的一样,所以自己也没有多想,就这样过去了,但是验收的时候师傅说:你认为这个设计的合理吗?我是不是只要知道他的ID和旧密码就可以随意修改?师傅让我修改,但是其实心里是有点打鼓的,觉得太复杂了,自己可能不会改!但是没有办法,硬着头皮改吧!

添加功能

1.登录用户为管理员:能修改所有操作员和一般用户的密码,但是只能修改管理员是自己的密码

2.登录用户为操作员:不能修改管理员的密码,能修改所有一般用户的密码,但是只能修改操作员是自己的密码

3.登录用户为一般用户:只能修改自己的密码

代码展示

Private Sub Command1_Click()
'设置修改密码的权限问题,如果登陆的为管理员,则可以修改其操作员和一般用户的密码,但是管理员的密码只能修改自己的
'如果登陆的是操作员,则可以修改一般用户的密码,但是操作员的密码只能修改自己的
'如果是一般用户,则只可以修改自己的密码
txtSQL = "select * from user_info where userid='" & UserName & "'"
Set mrc = ExecuteSQL(txtSQL, MsgText)
Level = Trim(mrc.Fields(2))
Select Case Level
Case "管理员"
'当登录的用户是管理员时只能修改管理员是自己的密码,不能修改其他人的
txtSQL = "select * from user_info where level='管理员' and userid='" & UserName & "'"
Set mrc2 = ExecuteSQL(txtSQL, MsgText)
If Text4.Text = Trim(mrc2.Fields(0)) Then

If Text4.Text = "" Then
MsgBox "用户ID不能为空,请输入!", 0 + 48, "提示"
Text4.SetFocus
Else
'判断数据库中是否有文本框中输入的用户ID
txtSQL = "select * from user_info where userid='" & Trim(Text4.Text) & "'"
Set mrc1 = ExecuteSQL(txtSQL, MsgText)
If mrc1.EOF = True Then
MsgBox "没有该用户,请重新输入!", 0 + 48, "提示"
Text1.Text = ""
Text1.SetFocus
Else
If Text1.Text = "" Then
MsgBox "原密码不能为空!", vbOKOnly + vbExclamation, "警告"
Else
'判断文本框中输入的原密码是否与数据库中的一致
If Text1.Text <> Trim(mrc1.Fields(1)) Then
MsgBox "原密码错误,请重新输入!", 0 + 48, "提示"
Text1.Text = ""
Text1.SetFocus
Else
'判断新密码部分
If Text2.Text = "" Then
MsgBox "新密码不能为空!", vbOKOnly + vbExclamation, "警告"
Else
If Trim(Text3.Text) <> Trim(Text2.Text) Then
MsgBox "两次输入密码不一致,请核对!", vbOKOnly + vbExclamation, "警告"
Text2.Text = ""
Text3.Text = ""
Else
txtSQL = "select * from user_info where userid='" & Trim(Text4.Text) & "'"
Set mrc = ExecuteSQL(txtSQL, MsgText)
mrc.Fields(1) = Trim(Text3.Text)
mrc.Update     '打开所需数据
mrc.Close    '将数据库关闭,释放资源
MsgBox "密码修改成功!", vbOKOnly + vbExclamation, "修改密码"
End If
End If
End If
End If
End If
End If
Else
MsgBox "您没有权限修改其他管理员的密码!", 0 + 48, "警告"
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text4.SetFocus
End If

Case "操作员"
'不能修改管理员的密码
txtSQL = "select * from user_info where userid='" & Trim(Text4.Text) & "'"
Set mrc3 = ExecuteSQL(txtSQL, MsgText)
If mrc3.Fields(2) = "管理员" Then
MsgBox "您没有权限修改管理员的密码!", 0 + 48, "警告"
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text4.SetFocus
Else
'当登录的用户是操作员时只能修改操作员是自己的密码,不能修改其他人的
txtSQL = "select * from user_info where level='操作员' and userid='" & UserName & "'"
Set mrc2 = ExecuteSQL(txtSQL, MsgText)
If Text4.Text = Trim(mrc2.Fields(0)) Then

If Text4.Text = "" Then
MsgBox "用户ID不能为空,请输入!", 0 + 48, "提示"
Text4.SetFocus
Else
'判断数据库中是否有文本框中输入的用户ID
txtSQL = "select * from user_info where userid='" & Trim(Text4.Text) & "'"
Set mrc1 = ExecuteSQL(txtSQL, MsgText)
If mrc1.EOF = True Then
MsgBox "没有该用户,请重新输入!", 0 + 48, "提示"
Text1.Text = ""
Text1.SetFocus
Else
If Text1.Text = "" Then
MsgBox "原密码不能为空!", vbOKOnly + vbExclamation, "警告"
Else
'判断文本框中输入的原密码是否与数据库中的一致
If Text1.Text <> Trim(mrc1.Fields(1)) Then
MsgBox "原密码错误,请重新输入!", 0 + 48, "提示"
Text1.Text = ""
Text1.SetFocus
Else
'判断新密码部分
If Text2.Text = "" Then
MsgBox "新密码不能为空!", vbOKOnly + vbExclamation, "警告"
Else
If Trim(Text3.Text) <> Trim(Text2.Text) Then
MsgBox "两次输入密码不一致,请核对!", vbOKOnly + vbExclamation, "警告"
Text2.Text = ""
Text3.Text = ""
Else
txtSQL = "select * from user_info where userid='" & Trim(Text4.Text) & "'"
Set mrc = ExecuteSQL(txtSQL, MsgText)
mrc.Fields(1) = Trim(Text3.Text)
mrc.Update     '打开所需数据
mrc.Close    '将数据库关闭,释放资源
MsgBox "密码修改成功!", vbOKOnly + vbExclamation, "修改密码"
End If
End If
End If
End If
End If
End If
Else
MsgBox "您没有权限修改其他管理员的密码!", 0 + 48, "警告"
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text4.SetFocus
End If
End If
Case "一般用户"
Text1.SetFocus
'因为一般用户权限最低,所以只能修改自己的密码,那么久直接将用户同步到文本框中,不需要输入了!
If Text1.Text = "" Then
MsgBox "原密码不能为空!", vbOKOnly + vbExclamation, "警告"
Else
'判断文本框中输入的原密码是否与数据库中的一致
If Text1.Text <> Trim(mrc1.Fields(1)) Then
MsgBox "原密码错误,请重新输入!", 0 + 48, "提示"
Text1.Text = ""
Text1.SetFocus
Else
'判断新密码部分
If Text2.Text = "" Then
MsgBox "新密码不能为空!", vbOKOnly + vbExclamation, "警告"
Else
If Trim(Text3.Text) <> Trim(Text2.Text) Then
MsgBox "两次输入密码不一致,请核对!", vbOKOnly + vbExclamation, "警告"
Text2.Text = ""
Text3.Text = ""
Else
txtSQL = "select * from user_info where userid='" & Trim(Text4.Text) & "'"
Set mrc = ExecuteSQL(txtSQL, MsgText)
mrc.Fields(1) = Trim(Text3.Text)
mrc.Update     '打开所需数据
mrc.Close    '将数据库关闭,释放资源
MsgBox "密码修改成功!", vbOKOnly + vbExclamation, "修改密码"
End If
End If
End If
End If
End Select
End Sub


总结:

以上功能是在原有的基础上,通过添加Select Case语句来实现的,虽然看起来代码比较多,但是实际上操作起来还是比较简单的,只要敢动手去做就可以!虽然只是一个小小的修改密码的界面,但是让我学会了:任何时候都要相信自己,我可以完成!做什么事情多想一点点,在原有的基础上进步一点点!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: