⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmuser.frm

📁 本论文以西电基础教学实验中心学生上机管理系统为背景
💻 FRM
📖 第 1 页 / 共 2 页
字号:
            fraPurview.Enabled = False
            cmdEdit.Caption = "修 改"
            cbpType.Enabled = True
            lvwUser.Enabled = True
            Else
            Exit Sub
        End If
End If
End Sub

Private Sub cmdLeft_Click()
If litSelected.ListIndex <> -1 Then
    litSelected.RemoveItem litSelected.ListIndex
End If
End Sub
Private Sub cmdLeftAll_Click()
ClearItem
End Sub

Private Sub cmdRight_Click()
If litSelect.ListIndex <> -1 Then
    litSelected.AddItem litSelect.List(litSelect.ListIndex)
End If
End Sub

Private Sub cmdRightAll_Click()
Dim i As Integer
For i = (litSelect.ListCount - 1) To 0 Step -1
    litSelected.AddItem litSelect.List(i)
Next
End Sub
Private Sub Form_Load()
EdotJudge = "false"
AddJudge = "false"
 fraUaer.Enabled = False
 fraPurview.Enabled = False
 
'******************************************给可供选择的权限列表赋值**********************
 Set rsPurview = New Recordset
 rsPurview.Open "select * from tbpurview", Modmain.conn, 3, 2
 While Not rsPurview.EOF
     litSelect.AddItem rsPurview.Fields!P_Name
 rsPurview.MoveNext
 Wend
 rsPurview.Close
 Set rsPurview = Nothing
 
'******************************************配置lvwUser控件并赋值**********************
lvwUser.ColumnHeaders.Add , , "", 1850
lvwUser.Sorted = True
lvwUser.View = lvwReport

Set rsUser = New Recordset
rsUser.Open "select * from TbUser", Modmain.conn, 3, 2
    While Not rsUser.EOF              ' 添加相应的 ListItem
      Set lItem = lvwUser.ListItems.Add
      lItem.Text = rsUser.Fields("U_Name")
      rsUser.MoveNext
    Wend
rsUser.Close
Set rsUser = Nothing
End Sub
Private Sub lvwUser_ItemClick(ByVal Item As MSComctlLib.ListItem)
StrItem = Item                            '记录该用户的用户名
Intindex = Item.Index
'***********************************查找该操作员的ID并填写相关信息*********************************
Set rsUser = New Recordset
rsUser.Open "select * from TbUser where U_Name like '" & Item & "'", Modmain.conn, 3, 2
txtU_Name.Text = rsUser.Fields!u_name
txtPsd.Text = rsUser.Fields!U_Psw
Password.Text = rsUser.Fields!U_Psw
StrU_ID = rsUser.Fields!U_ID                '记录该用户的用户ID
rsUser.Close
Set rsUser = Nothing

'**********************************查找该用户的角色并填写**********************************
Set rsRole = New Recordset
rsRole.Open "select * from TbRole where R_ID = '" & Left(StrU_ID, 1) & "'", Modmain.conn, 3, 2
cbpType.Text = rsRole.Fields!r_Name
rsRole.Close
Set rsRole = Nothing

'**********************************查找并填写该用户的权限***********************************
Set rsPurview = New Recordset
rsPurview.Open "select TbPurview.P_Name from TbPurview,TbAllocatee where TbAllocatee.P_ID=TbPurview.P_ID and tbAllocatee.U_ID LIKE '" & StrU_ID & "'", Modmain.conn, 3, 2
ClearItem
While Not rsPurview.EOF
     litSelected.AddItem rsPurview.Fields!P_Name
    rsPurview.MoveNext
Wend
rsPurview.Close
Set rsPurview = Nothing
End Sub

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''清空已选择的用户权限                                                                      ''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub ClearItem()
Dim i As Integer
For i = (litSelected.ListCount - 1) To 0 Step -1
    litSelected.RemoveItem (i)
Next
End Sub

Private Sub txtPsd_LostFocus()
If cmdAdd.Caption = "保 存" Then
    Set rsUser = New Recordset
    rsUser.Open "select * from TbUser where U_Psw like '" & txtPsd.Text & "'", Modmain.conn, 3, 2
    
    If rsUser.RecordCount <> 0 Then
        MsgBox "该密码已经有人使用,请重新编写!", vbOKOnly + vbCritical, "机房管理"
        txtPsd.Text = ""
        txtPsd.SetFocus
    End If
    rsUser.Close
    Set rsUser = Nothing
End If
End Sub

Private Sub txtU_Name_LostFocus()
If cmdAdd.Caption = "保 存" Then
    Set rsUser = New Recordset
    rsUser.Open "select * from TbUser where u_name like '" & txtU_Name.Text & "'", Modmain.conn, 3, 2
    
    If rsUser.RecordCount <> 0 Then
        MsgBox "用户名已存在,请重新编写!", vbOKOnly + vbCritical, "机房管理"
        txtU_Name.Text = ""
        txtU_Name.SetFocus
    End If
    rsUser.Close
    Set rsUser = Nothing
End If
End Sub
Private Sub AddNewUser()
If Judge = True Then
    If MsgBox("确实要保存吗?", vbYesNo + vbQuestion, "机房管理") = vbYes Then
        SaveInfo
        Set lItem = lvwUser.ListItems.Add
        lItem.Text = txtU_Name.Text
        MsgBox "保存成功", vbOKOnly + vbInformation, "机房管理"    '保存完毕并提醒
        AddJudge = "true"
    End If
End If
End Sub
Private Function Judge() As Boolean
If txtPsd.Text <> Password.Text Then
    MsgBox "确认密码不一致请重新填写!", vbOKOnly + vbExclamation, "机房管理"
    Password.Text = ""
    Password.SetFocus
    ElseIf txtU_Name.Text = "" Then
        MsgBox "用户名不能为空!", vbOKOnly + vbExclamation, "机房管理"
        txtU_Name.SetFocus
        ElseIf txtPsd.Text = "" Then
            MsgBox "密码不能为空!", vbOKOnly + vbExclamation, "机房管理"
            txtPsd.SetFocus
            ElseIf cbpType.Text = "超级用户" And cmdAdd.Caption = "保 存" Then
                MsgBox "本系统只能有一个超级用户,请重新选择!", vbOKOnly + vbExclamation, "机房管理"
                cbpType.ListIndex = -1
   Else
        Judge = True
End If
End Function
Private Sub SaveInfo()
'**************************************产生该用户的ID********************************
Dim rsMaxNo As Recordset
Set rsMaxNo = New Recordset
rsMaxNo.Open "select max(right(u_id,2)) as MaxNo  from TbUser,tbrole where left(TbUser.u_id,1)=tbrole.R_ID and  tbrole.r_name like '" & cbpType.Text & "'", Modmain.conn, 3, 2
Dim STRID As String
STRID = strR_ID & Right("0" & CStr(CInt(rsMaxNo.Fields!maxno) + 1), 2)
rsMaxNo.Close
Set rsMaxNo = Nothing
'**************************************保存该用户的信息*****************************
Set rsUser = New Recordset
rsUser.Open "select * from TbUser", Modmain.conn, 3, 2
rsUser.AddNew
rsUser.Fields!U_ID = STRID
rsUser.Fields!u_name = txtU_Name.Text
rsUser.Fields!U_Psw = txtPsd.Text
rsUser.Update
'*************************************保存该用户的权限*****************************

Dim i As Integer
For i = (litSelected.ListCount - 1) To 0 Step -1
    Dim strMemo As String
    strMemo = litSelected.List(i)
     Set rsPurview = New Recordset
     rsPurview.Open "select * from tbpurview where P_Name like '" & strMemo & "'", Modmain.conn, 3, 2
     
     Set rsAllocatee = New Recordset
     rsAllocatee.Open "select * from tbAllocatee ", Modmain.conn, 3, 2
     rsAllocatee.AddNew
        rsAllocatee.Fields!U_ID = STRID
        rsAllocatee.Fields!p_id = rsPurview.Fields!p_id
    rsAllocatee.Update
    rsPurview.Close
    Set rsPurview = Nothing
    rsAllocatee.Close
    Set rsAllocatee = Nothing
Next
    Call AddLog("L28", "Add")        '操作日志
End Sub

Private Sub DeleteUser()
If MsgBox("确实要删除吗?", vbYesNo + vbQuestion, "机房管理") = vbYes Then
    '*************************************** 删除该用户的信息******************
    Set rsUser = New Recordset
    rsUser.Open "select * from TbUser where u_id like '" & StrU_ID & "'", Modmain.conn, 3, 2
    rsUser.Delete
    rsUser.Close
    Set rsUser = Nothing
    '**************************************删除该用户的权限信息******************
    Set rsAllocatee = New Recordset
    rsAllocatee.Open "select * from tbAllocatee where u_id like '" & StrU_ID & "'", Modmain.conn, 3, 2
    While Not rsAllocatee.EOF
        rsAllocatee.Delete
        rsAllocatee.MoveNext
    Wend
    rsAllocatee.Close
    Set rsAllocatee = Nothing
    lvwUser.ListItems.Remove (Intindex)           '删除用户列表框的信息
    ClearInfo
    ClearItem
    Call AddLog("L29", "Delete")
    MsgBox "删除成功", vbOKOnly + vbInformation, "机房管理"    '保存完毕并提醒

End If
End Sub

Private Sub ClearInfo()
cbpType.ListIndex = -1
txtU_Name.Text = ""
txtPsd.Text = ""
Password.Text = ""
End Sub

Private Sub AddEditInfo()
If Judge = True Then
    If MsgBox("确实要保存吗?", vbYesNo + vbQuestion, "机房管理") = vbYes Then
        '**************************************保存该用户的信息*****************************
        Set rsUser = New Recordset
        rsUser.Open "select * from TbUser where u_name like '" & StrItem & "'", Modmain.conn, 3, 2
        rsUser.Fields!u_name = txtU_Name.Text
        rsUser.Fields!U_Psw = txtPsd.Text
        rsUser.Update
        Set itmX = lvwUser.FindItem(StrItem, , , lvwPartial) '改变lvwPweson控件的金额值
        itmX.Text = txtU_Name.Text
        
        '**************************************首先删除该用户的权限信息******************
        Set rsAllocatee = New Recordset
        rsAllocatee.Open "select * from tbAllocatee where u_id like '" & StrU_ID & "'", Modmain.conn, 3, 2
        While Not rsAllocatee.EOF
            rsAllocatee.Delete
            rsAllocatee.MoveNext
        Wend
        rsAllocatee.Close
        Set rsAllocatee = Nothing
      '*************************************重新保存该用户的权限信息*****************************
    
        Dim i As Integer
        For i = (litSelected.ListCount - 1) To 0 Step -1
            Dim strMemo As String
            strMemo = litSelected.List(i)
            Set rsPurview = New Recordset
            rsPurview.Open "select * from tbpurview where P_Name like '" & strMemo & "'", Modmain.conn, 3, 2
             
            Set rsAllocatee = New Recordset
            rsAllocatee.Open "select * from tbAllocatee ", Modmain.conn, 3, 2
            rsAllocatee.AddNew
            rsAllocatee.Fields!U_ID = StrU_ID
            rsAllocatee.Fields!p_id = rsPurview.Fields!p_id
            rsAllocatee.Update
            rsPurview.Close
            Set rsPurview = Nothing
            rsAllocatee.Close
            Set rsAllocatee = Nothing
        Next
        MsgBox "修改成功", vbOKOnly + vbInformation, "机房管理"    '保存完毕并提醒
        EdotJudge = "true"
  Call AddLog("L27", "Edit")
    End If
End If
End Sub
Private Sub litSelect_DragDrop(Source As Control, X As Single, Y As Single)
If frmUser.ActiveControl.Name = "litSelected" Then           '在文件列表中drag并drop不执行此段代码,即在本列表中拖放不执行任何操作
    litSelected.RemoveItem litSelected.ListIndex                  '将临时文件列表中的文件移入文件列表
End If
End Sub
Private Sub litSelected_DragDrop(Source As Control, X As Single, Y As Single)
If frmUser.ActiveControl.Name = "litSelect" Then              '在临时文件列表中drag并drop不执行此段代码,即在本列表中拖放不执行任何操作
    litSelected.AddItem litSelect.List(litSelect.ListIndex)        '将文件列表中的文件移入临时文件列表
End If
End Sub
Private Sub litSelect_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
temp_lab.Move litSelect.Left, litSelect.Top + Y, temp_lab.Width, temp_lab.Height        '实际是移动标签
temp_lab.Drag                                                                   '启动标签的拖放操作
End Sub
Private Sub litSelected_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
temp_lab.Move litSelected.Left, litSelected.Top + Y, temp_lab.Width, temp_lab.Height           '实际是移动标签
If litSelected.ListCount > 0 Then                      '当列表框为空时不进行拖放操作
    temp_lab.Drag                                  '启动标签的拖放操作
End If
End Sub

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''将用户添加、修改、删除操作员的信息记入操作日志                        ''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub AddLog(LogType As String, cc As String)
Dim strEvents As String
Dim strTemp As String
strTemp = "'"
Set rsOperateLog = New Recordset
rsOperateLog.Open "select * from tbOperateLog", Modmain.conn, 3, 2
Set rsLog = New Recordset
rsLog.Open "select * from tblog where L_ID='" & LogType & "'", Modmain.conn, 3, 2
strEvents = rsLog.Fields!Events

rsOperateLog.AddNew
    rsOperateLog.Fields!U_ID = frmLoad.StrU_ID
    rsOperateLog.Fields!Time = Time
    rsOperateLog.Fields!Date = Date
    rsOperateLog.Fields!Events = strEvents
    If cc = "Delete" Then
        rsOperateLog.Fields!Description = strEvents & strTemp & StrItem & strTemp
    Else
        rsOperateLog.Fields!Description = strEvents & strTemp & txtU_Name.Text & strTemp
    End If
rsOperateLog.Update
End Sub


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -