?? f用戶管理.frm
字號:
TabIndex = 9
Top = 240
Width = 1935
End
End
Begin VB.Frame Frame1
Caption = "查詢"
Height = 855
Left = 2400
TabIndex = 1
Top = 240
Width = 7215
Begin VB.ComboBox cbokind
Height = 315
Left = 1080
TabIndex = 4
Top = 360
Width = 1575
End
Begin VB.TextBox txtUserIdQuery
Height = 375
Left = 3600
MaxLength = 10
TabIndex = 3
Top = 360
Width = 1575
End
Begin VB.CommandButton CmdQuery
Caption = "用戶查詢"
Height = 375
Left = 5280
TabIndex = 2
Top = 360
Width = 1095
End
Begin VB.Label Label8
Caption = "用戶類型:"
Height = 375
Index = 0
Left = 240
TabIndex = 6
Top = 360
Width = 1095
End
Begin VB.Label Label9
Caption = "用戶ID:"
Height = 375
Left = 2760
TabIndex = 5
Top = 360
Width = 735
End
End
End
End
Attribute VB_Name = "F用戶管理"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Dim rs As ADODB.Recordset
Dim SQL As String
Dim msg As String
Dim Index As Integer
Dim flag As String '判斷是新增加的記錄還是修改記錄
Private Sub Form_Load()
'初始化用戶類型下拉框
cbokind.AddItem "員工"
cbokind.AddItem "管理人員"
cbokind.ListIndex = 0 '默認為員工
'初始化用戶類別下拉框
CboSelect.AddItem "員工"
CboSelect.AddItem "管理人員"
CboSelect.ListIndex = 0 '默認為員工
Call LoadData '裝載用戶數據
End Sub
Private Sub LoadData()
'裝載數據
Dim strItem As String
Dim strWhere As String
'得到用戶信息
strWhere = " where 用戶類別='" & Trim(cbokind.Text)
strWhere = strWhere & "' and 用戶ID like '" & txtUserIdQuery.Text & "%'"
SQL = " select * from 用戶信息表 " & strWhere & " order by 用戶ID"
Set rs = Nothing
Set rs = SelectSQL(SQL, msg)
ListUser.Clear '清空用戶列表
If rs.RecordCount > 0 Then '如果存在記錄
'添加到用戶列表
Do While (Not rs.EOF) And (Not rs.BOF)
strItem = Trim(rs.Fields(0)) & ":" & Trim(rs.Fields(1))
ListUser.AddItem (strItem)
rs.MoveNext '指向下一條記錄
Loop
rs.MoveFirst '指向記錄集的第一條
ListUser.ListIndex = 0 '默ListBox
Else
'編輯控件可用性
CmdAdd.Enabled = True: CmdModify.Enabled = False: CmdDelete.Enabled = False
CmdCancel.Enabled = False: CmdSave.Enabled = False
Exit Sub
End If
Call FixData '在控件中顯示詳細信息
'編輯控件可用性
CmdAdd.Enabled = True: CmdModify.Enabled = True: CmdDelete.Enabled = True
CmdCancel.Enabled = False: CmdSave.Enabled = False
End Sub
Private Sub FixData()
'顯示數據
Dim UserID As String
Dim rights As String
'顯示具體信息
If ListUser.ListCount > 0 Then
UserID = Left(Trim(ListUser.Text), 10)
Else
Exit Sub
End If
'查找數據
rs.MoveFirst
rs.Find ("用戶ID='" & UserID & "'")
'顯示數據
txtUserId.Text = Trim(rs.Fields("用戶ID"))
txtName.Text = Trim(rs.Fields("用戶名稱"))
txtPassword.Text = Trim(rs.Fields("密碼"))
CboSelect.Text = Trim(rs.Fields("用戶類別"))
txtPhone.Text = Trim(rs.Fields("電話"))
txtEmail.Text = Trim(rs.Fields("郵箱"))
txtAddress.Text = Trim(rs.Fields("住址"))
txtCardId.Text = Trim(rs.Fields("身份證號"))
rights = Trim(rs.Fields("權限"))
'設置權限的CheckBox
For Index = 0 To 5
ChkRights(Index).value = 0 '所有的權限CheckBox為“未選中”狀態
Next Index
If InStr(rights, "職能設置") Then ChkRights(0).value = 1
If InStr(rights, "員工信息管理") Then ChkRights(1).value = 1
If InStr(rights, "工資管理") Then ChkRights(2).value = 1
If InStr(rights, "員工考勤管理") Then ChkRights(3).value = 1
If InStr(rights, "工作考核管理") Then ChkRights(4).value = 1
If InStr(rights, "用戶管理") Then ChkRights(5).value = 1
'編輯控件可用性
CmdModify.Enabled = True: CmdDelete.Enabled = True: CmdAdd.Enabled = True
CmdSave.Enabled = False: CmdCancel.Enabled = False
End Sub
Private Sub ControlActiveX(kind As String, flag As Boolean)
'控制控件
'如果進行添加,刪除或者保存操作
If kind = "Add" Or kind = "Delete" Or kind = "Save" Then
'所有控件清空或未選擇
txtUserId.Text = ""
txtName.Text = ""
txtPassword.Text = ""
CboSelect.ListIndex = 0
txtPhone.Text = ""
txtEmail.Text = ""
txtCardId.Text = ""
txtAddress.Text = ""
For Index = 0 To 5
ChkRights(Index).value = 0
Next Index
End If
'如果進行修改操作
If kind = "Modify" Then
txtUserId.Enabled = False
Else
txtUserId.Enabled = flag
End If
'設置控件的可用性
txtName.Enabled = flag
txtPassword.Enabled = flag
CboSelect.Enabled = flag
txtPhone.Enabled = flag
txtEmail.Enabled = flag
ListUser.Enabled = Not flag
txtCardId.Enabled = flag
txtAddress.Enabled = flag
For Index = 0 To 5
ChkRights(Index).Enabled = flag
Next Index
End Sub
Private Sub CmdAdd_Click()
'添加操作
'清空數據
Call ControlActiveX("Add", True)
'設置標志flag
flag = "Add"
'添加、修改、刪除按鈕不可用,取消、保存按鈕可用
CmdAdd.Enabled = False: CmdModify.Enabled = False: CmdDelete.Enabled = False
CmdCancel.Enabled = True: CmdSave.Enabled = True
End Sub
Private Sub CmdModify_Click()
'修改操作
If rs.RecordCount > 0 Then
'可用性
Call ControlActiveX("Modify", True)
'設置標志flag
flag = "Modify"
'添加、修改、刪除按鈕不可用,取消、保存按鈕可用
CmdCancel.Enabled = True: CmdSave.Enabled = True
CmdAdd.Enabled = False: CmdModify.Enabled = False: CmdDelete.Enabled = False
Else
MsgBox ("沒有可以修改的數據!")
End If
End Sub
Private Sub CmdDelete_Click()
'刪除操作
On Error GoTo ErrMsg
If txtUserId.Text = "" Then
MsgBox ("選擇需要刪除的用戶信息!")
Exit Sub
End If
If rs.RecordCount > 0 Then
msg = MsgBox("刪除該條記錄嗎?", vbYesNo)
If msg = vbYes Then
rs.Delete
Call LoadData '重新裝載數據
'清空文本框,重新設置下拉框
Call ControlActiveX("Delete", False)
'按鈕可用性處理
CmdAdd.Enabled = True: CmdModify.Enabled = False: CmdDelete.Enabled = True
CmdSave.Enabled = False: CmdCancel.Enabled = False
MsgBox ("成功刪除的數據!")
End If
Else
MsgBox ("沒有可刪除的數據!")
End If
Exit Sub
ErrMsg:
MsgBox Err.Description, vbExclamation, "出錯"
End Sub
Private Sub cmdCancel_Click()
'取消操作
Call FixData '設置數據
ListUser.Enabled = True
'修改、刪除、添加按鈕可用,保存和取消按鈕不可用
CmdModify.Enabled = True: CmdDelete.Enabled = True: CmdAdd.Enabled = True
CmdSave.Enabled = False: CmdCancel.Enabled = False
End Sub
Private Sub CmdSave_Click()
'保存操作
On Error GoTo ErrMsg
If Not CheckData Then Exit Sub '如果數據不合法退出
If flag = "Modify" Then '如果是修改數據
msg = MsgBox("您確實要修改這條數據嗎?", vbYesNo)
If msg = vbYes Then
Call setData '設置數據
Else
Exit Sub
End If
ElseIf flag = "Add" Then '如果是添加新數據
rs.AddNew
Call setData
End If
'更新數據
rs.Update
Call LoadData '重新裝載數據
'控件清空和可用性
Call ControlActiveX("Save", False)
CmdModify.Enabled = True: CmdDelete.Enabled = True: CmdAdd.Enabled = True
CmdSave.Enabled = False: CmdCancel.Enabled = False
If flag = "Add" Then
MsgBox ("成功添加數據!")
Else
MsgBox ("成功更新數據!")
End If
Exit Sub
ErrMsg:
MsgBox Err.Description, vbExclamation, "出錯"
End Sub
Private Function CheckData() As Boolean
'檢查數據的合法性
Dim rst As ADODB.Recordset
'檢查非空性
If (Trim(txtUserId.Text) = "") Then '檢查用戶ID是否為空
MsgBox ("用戶ID不能為空!")
CheckData = False
Exit Function
ElseIf Len(Trim(txtUserId.Text)) <> 10 Then '檢查用戶ID是否為10位
MsgBox ("用戶ID不是10位!")
CheckData = False
Exit Function
ElseIf (Trim(txtName.Text) = "") Then '檢查用戶名稱是否為空
MsgBox ("用戶名稱不能為空!")
CheckData = False
Exit Function
ElseIf (Trim(CboSelect.Text) = "") Then '檢查用戶類別是否為空
MsgBox ("用戶類別不能為空!")
CheckData = False
End If
'檢查記錄的唯一性
SQL = " select 用戶ID from 用戶信息表 where 用戶ID='" & Trim(txtUserId.Text) & "'"
Set rst = SelectSQL(SQL, msg)
'如果存在記錄且編輯標志為添加,提示重復添加
If flag = "Add" And rst.RecordCount > 0 Then
MsgBox ("用戶ID,重復添加!")
rst.Close
CheckData = False '返回False
Exit Function
End If
CheckData = True '合法返回True
End Function
Private Sub setData()
'為記錄的字段賦值
Dim rights As String
rights = ""
rs.Fields("用戶ID") = txtUserId.Text
rs.Fields("用戶名稱") = txtName.Text
rs.Fields("密碼") = txtPassword.Text
rs.Fields("用戶類別") = Trim(CboSelect.Text)
rs.Fields("電話") = txtPhone.Text
rs.Fields("郵箱") = txtEmail.Text
rs.Fields("住址") = txtAddress.Text
rs.Fields("身份證號") = txtCardId.Text
For Index = 0 To 5
If ChkRights(Index).value = 1 Then
rights = rights & Trim(ChkRights(Index).Caption) & " : "
End If
Next Index
rs.Fields("權限") = Trim(rights)
End Sub
Private Sub ListUser_Click()
Call FixData '顯示數據
End Sub
Private Sub CmdQuery_Click()
'查詢操作
Call LoadData '重新裝載數據
End Sub
Private Sub CmdExit_Click()
'退出操作
人事管理系統.Enabled = True
rs.Close
Unload Me
End Sub
Private Sub Form_Unload(Cancel As Integer)
'退出操作
人事管理系統.Enabled = True
Unload Me
End Sub
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -