機房——管理員——新增、刪除使用者
阿新 • • 發佈:2018-12-17
這個窗體是管理員的特權,擁有任命和解僱的權利。主要涉及四個功能:檢視、新增、刪除和退出
檢視,就是檢視目前已任命的管理員、操作員和一般使用者的人數及相關資訊。
由圖片我們可以看出,當選擇使用者級別時,下方控制元件自動給出這個級別的所有員工資訊,包括使用者名稱,姓名和開戶人。功能較簡單,很好實現,如何實現在上篇部落格已經說明,這裡不做過多贅述
新增,可以理解為當前登入的管理員新增新僱傭員工的資訊
下圖為窗體介面
在這個窗體,我做了一個小優化,在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
這個窗體的邏輯相對簡單,功能卻很實用,在機房系統的執行中必不可少,後期陸續更新!