1. 程式人生 > >機房——管理員——新增、刪除使用者

機房——管理員——新增、刪除使用者

這個窗體是管理員的特權,擁有任命和解僱的權利。主要涉及四個功能:檢視、新增、刪除和退出
檢視,就是檢視目前已任命的管理員、操作員和一般使用者的人數及相關資訊。
在這裡插入圖片描述
由圖片我們可以看出,當選擇使用者級別時,下方控制元件自動給出這個級別的所有員工資訊,包括使用者名稱,姓名和開戶人。功能較簡單,很好實現,如何實現在上篇部落格已經說明,這裡不做過多贅述
新增,可以理解為當前登入的管理員新增新僱傭員工的資訊
下圖為窗體介面
在這裡插入圖片描述
在這個窗體,我做了一個小優化,在text框中顯示水印字型。具體如何操作的在後期將會更新。這個窗體涉及一個邏輯問題,就是一般使用者,一般使用者在這個機房系統中屬於什麼級別呢?為什麼存在呢?我把一般使用者定義為學生,他享有學生的一切功能。所有在新增使用者的時候,我取消了一般使用者的選項,只能新增操作員和管理員。
下圖為新增使用者的流程圖,流程圖,就是這個新增使用者功能是程式碼執行的邏輯順序,包括需要考慮的各種情況
在這裡插入圖片描述


新增使用者的部分程式碼展示

 If txtUserName.Text = "" Then
        MsgBox "使用者名稱不能為空!", 48, "提示"
        txtUserName.SetFocus
        Exit Sub
    Else
    
    txtsql = "select * from user_info where userid = '" & txtUserName.Text & "'"
    Set mrc = ExecuteSQL(txtsql, msgtext)
    
        If mrc.EOF = False Then
            MsgBox "使用者名稱已存在,請重新輸入使用者名稱!", 48, "提示"
            txtUserName.Text = ""
            txtUserName.SetFocus
            Exit Sub
        End If
    End If
    
    If comboUserLevel.Text = "" Then
        MsgBox "請選擇使用者級別", 48, "提示"
        comboUserLevel.SetFocus
        Exit Sub
    End If
    
    If txtName.Text = "" Then
        MsgBox "請輸入姓名!", 48, "提示"
        txtName.SetFocus
        Exit Sub
    End If
    
    If txtPassWord1.Text = "" Then
        MsgBox "請輸入密碼!", 48, "提示"
        txtPassWord1.SetFocus
        Exit Sub
    End If
    
    If txtPassWord2.Text = "" Then
        MsgBox "請輸入確認密碼!", 48, "提示"
        txtPassWord2.SetFocus
        Exit Sub
    End If
    
    
    
    
    If Trim(txtPassWord1.Text) <> Trim(txtPassWord2.Text) Then
            MsgBox "兩次輸入密碼不一樣", vbOKOnly + vbExclamation, "警告"
            txtPassWord1.SetFocus
            txtPassWord1.Text = ""
            txtPassWord2.Text = ""
            Exit Sub
        
    Else
        
        mrc.AddNew
        mrc.Fields(0) = txtUserName.Text
        mrc.Fields(1) = txtPassWord1.Text
        mrc.Fields(2) = comboUserLevel.Text
        mrc.Fields(3) = txtName.Text
        mrc.Fields(4) = txtPassWord2
        
        mrc.Update
        mrc.Close
        MsgBox "新增使用者成功!", vbOKOnly + vbExclamation, "提示"
       
    End If

接下來是刪除使用者
刪除使用者,就是刪除對已離職的員工資訊,進行刪除,更新資料庫,使得資料庫保持一個最新的資訊狀態
首先要選擇要刪除的使用者,那麼就要實現對MSHFlexGrid控制元件的選定,單機MSHFlexGrid1控制元件編譯屬性,如下圖
在這裡插入圖片描述
然後,對選擇的使用者進行刪除,更新資料庫資訊
部分程式碼展示

If comboUserLevel.Text = "" Then
        MsgBox "請先選擇使用者級別!", 48, "提示"
        Exit Sub
    Else
   
    txtsql = "select *from User_Info where userID='" & Trim(myFlexgrid.TextMatrix(myFlexgrid.Row, 0)) & "'"
    Set mrc = ExecuteSQL(txtsql, msgtext)

        If Trim(myFlexgrid.TextMatrix(myFlexgrid.Row, 0)) = Trim(UserID) Then
            MsgBox "該使用者正在登陸,不能刪除!", 48, "提示"
        Else
            If mrc.EOF = True Then
                MsgBox "該級別使用者為空,沒有可刪除的物件!", 48, "提示"
                Exit Sub
            Else
                txtsql = "delete from User_Info where userID = '" & Trim(myFlexgrid.TextMatrix(myFlexgrid.Row, 0)) & "'"
                Set mrc = ExecuteSQL(txtsql, msgtext)
            End If
        End If
    End If
      
   If myFlexgrid.Row = 1 Then
        MsgBox "您需要保留一個使用者!"
        Exit Sub
   Else
       myFlexgrid.RemoveItem myFlexgrid.Row
   End If
 
    MsgBox "刪除成功!", 48, "提示"

最後一個是更新,就是更新到最新的資料庫狀態,為了防止新增或刪除使用者後,資料庫未能自動更新至最新的資訊狀態,使用者可以手動更新,檢視新增或刪除使用者是否成功。
部分程式碼展示

If comboUserLevel.Text = "" Then
        MsgBox "請先選擇使用者級別!", 48, "提示"
        Exit Sub
    End If
    
    txtsql = "select * from user_info where level ='" & comboUserLevel.Text & "'"
    Set mrc = ExecuteSQL(txtsql, msgtext)
    
    With myFlexgrid
    .rows = 1
    .CellAlignment = 4
    .TextMatrix(0, 0) = "使用者名稱"
    .TextMatrix(0, 1) = "姓名"
    .TextMatrix(0, 2) = "開戶人"
    
    Do While Not mrc.EOF
        
        .rows = .rows + 1
        .CellAlignment = 4
        .TextMatrix(.rows - 1, 0) = Trim(mrc.Fields(0))
        .TextMatrix(.rows - 1, 1) = Trim(mrc.Fields(3))
        .TextMatrix(.rows - 1, 2) = Trim(mrc.Fields(4))
        mrc.MoveNext    '移動到下一條記錄
'        MsgBox "已更新到最新資料", 48, "提示"
'        Exit Sub
    Loop
    End With

這個窗體的邏輯相對簡單,功能卻很實用,在機房系統的執行中必不可少,後期陸續更新!