📄 系统用户管理.frm
字号:
VERSION 5.00
Begin VB.Form SystemUserManage
BorderStyle = 1 'Fixed Single
Caption = "系统用户管理"
ClientHeight = 3150
ClientLeft = 45
ClientTop = 435
ClientWidth = 6705
LinkTopic = "Form1"
MaxButton = 0 'False
MDIChild = -1 'True
MinButton = 0 'False
ScaleHeight = 3150
ScaleWidth = 6705
Begin VB.PictureBox picNavigation
Height = 375
Left = 720
ScaleHeight = 315
ScaleWidth = 4035
TabIndex = 11
Top = 2280
Width = 4095
Begin VB.TextBox txtNews
Height = 375
Left = 840
TabIndex = 16
Top = 0
Width = 2295
End
Begin VB.CommandButton cndMove
Caption = "|<"
Height = 375
Index = 3
Left = 120
TabIndex = 15
Top = 0
Width = 375
End
Begin VB.CommandButton cndMove
Caption = ">|"
Height = 375
Index = 2
Left = 3480
TabIndex = 14
Top = 0
Width = 375
End
Begin VB.CommandButton cndMove
Caption = ">"
Height = 375
Index = 1
Left = 3120
TabIndex = 13
Top = 0
Width = 375
End
Begin VB.CommandButton cndMove
Caption = "<"
Height = 375
Index = 0
Left = 480
TabIndex = 12
Top = 0
Width = 375
End
End
Begin VB.CommandButton cmdAdd
Caption = "添加"
Height = 375
Left = 5520
TabIndex = 10
Top = 240
Width = 975
End
Begin VB.CommandButton cmdExit
Caption = "关闭"
Height = 375
Index = 3
Left = 5520
TabIndex = 9
Top = 2280
Width = 975
End
Begin VB.CommandButton cmdSave
Caption = "保存"
Height = 375
Index = 2
Left = 5520
TabIndex = 8
Top = 1770
Width = 975
End
Begin VB.CommandButton cmdDelete
Caption = "删除"
Height = 375
Index = 1
Left = 5520
TabIndex = 7
Top = 750
Width = 975
End
Begin VB.CommandButton cmdRefresh
Caption = "刷新"
Height = 375
Index = 0
Left = 5520
TabIndex = 6
Top = 1260
Width = 975
End
Begin VB.ComboBox Combo1
Height = 300
ItemData = "系统用户管理.frx":0000
Left = 1800
List = "系统用户管理.frx":000A
Style = 2 'Dropdown List
TabIndex = 5
Top = 1440
Width = 2775
End
Begin VB.TextBox txtPWD
Height = 375
Left = 1800
TabIndex = 4
Top = 870
Width = 2775
End
Begin VB.TextBox txtUser
Height = 375
Left = 1800
TabIndex = 3
Top = 360
Width = 2775
End
Begin VB.Label Label3
AutoSize = -1 'True
Caption = "身份:"
Height = 180
Left = 960
TabIndex = 2
Top = 1500
Width = 540
End
Begin VB.Label Label2
AutoSize = -1 'True
Caption = "口令:"
Height = 180
Left = 960
TabIndex = 1
Top = 960
Width = 540
End
Begin VB.Label Label1
AutoSize = -1 'True
Caption = "用户名:"
Height = 180
Left = 780
TabIndex = 0
Top = 450
Width = 720
End
End
Attribute VB_Name = "SystemUserManage"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim isAdding As Boolean 'isAdding用于标识是否处于添加记录状态
Dim objRs As Recordset 'objRs用于保存"系统用户"表数据
Dim objCn As Connection 'objCn用于建立数据库连接
Private Sub cmdAdd_Click()
'单击时清除用户名和口令文本框,等待用户输入新记录,添加记录时禁用导航条,添加按钮和删除按钮
txtUser = ""
txtPWD = ""
txtNews = "添加新记录"
cmbStatus.ListIndex = 1 '设置默认身份
isAdding = True
cmdAdd.Enabled = False '在保存新记录之前禁用控件
cmdDelete.Enabled = False
picNavigation.Enabled = False
End Sub
Private Sub cmdDelete_Click(Index As Integer) '删除当前记录
On Error GoTo DealError
With objRs
If Not .EOF Then
If MsgBox("将删除<" & Trim(txtUser) & ">的用户数据,是否继续?", vbCritical + vbYesNo, "系统用户管理") = vbYes Then
.Delete
.MoveNext
If .EOF And .RecordCount > 0 Then .MoveLast
ShowCurrentRecord
End If
End If
End With
Exit Sub
DealError:
msg = "程序执行出错,错误信息如下:" & vbCrLf & Err.Description
ShowError msg
End Sub
Private Sub cmdExit_Click(Index As Integer)
Unload Me
End Sub
Private Sub cmdRefresh_Click(Index As Integer)
'重新从数据库获得最新数据,如正在添加记录,则取消添加操作。
objRs.Requery
ShowCurrentRecord
cmdAdd.Enabled = True
cmdDelete.Enabled = True
isAdding = False
picNavigation.Enabled = True
End Sub
Private Sub cmdSave_Click(Index As Integer)
'首先检查输入的各数据项是否合法,然后检查是否已存在相同记录,最后保存。
On Error GoTo DealError
If Trim(txtUser) = "" Then
MsgBox "用户名不能为空!", vbCritical, "系统用户管理"
txtUser.SetFocus
ElseIf Trim(txtPWD) = "" Then
MsgBox "用户口令不能为空!", vbCritical, "系统用户管理"
txtPWD.SetFocus
Else
If isRepeat Then
MsgBox "用户名:" & Trim(txtUser) & "已被使用,请使用其他用户名!", vbCritical, "系统用户管理"
txtUser.SetFocus
txtUser.SelStart = 0
txtUser.SelLength = Len(txtUser)
Else
'保存记录
If isAdding Then objRs.AddNew
objRs!用户名 = txtUser
objRs!口令 = txtPWD
objRs!身份 = cmbStatus
objRs.Update
MsgBox "数据保存成功!", vbInformation, "系统用户管理"
cmdAdd.Enabled = True
cmdDelete.Enabled = True
isAdding = False
picNavigation.Enabled = True
ShowCurrentRecord
End If
End If
Exit Sub
DealError:
msg = "程序执行出错,错误信息如下:" & vbCrLf & Err.Description
ShowError msg
End Sub
Private Function isRepeat() As Boolean '定义isRepeat函数过程,检查修改或添加的记录是否重复
'检查当前修改后的用户名是否重复
Dim objCopy As New Recordset
Set objCopy = objRs.Close(clone不确定)
If objCopy.RecordCount > 0 Then
objCopy.MoveFirst
objCopy.Find "用户名='" & Trim(txtUser) & "'"
If objCopy.EOF Then
isRepeat = False
ElseIf isAdding Then
isRepeat = True
ElseIf objCopy.AbsolutePosition <> objRs.AbsolutePosition Then
isRepeat = True
Else
isRepeat = False
End If
Else
isRepeat = False
End If
Set objCopy = Nothing
End Function
Private Sub cndMove_Click(Index As Integer) '实现记录导航条功能(第一条记录,上一条,下一条,最后一条,当前记录序号和总记录号)|<,<,>,>|为一个控件数组
On Error GoTo DealError
With objRs
Select Case Index '切换当前记录
Case 0 '使第一个记录为当前记录
If .RecordCount > 0 And Not .BOF Then .MoveFirst
Case 1 '使上一个记录为当前记录
If .RecordCount > 0 And Not .BOF Then
.MovePrevious
If .BOF Then .MoveFirst
End If
Case 2 '使下一个记录为当前记录
If .RecordCount > 0 And Not .EOF Then
.MoveNext
If .EOF Then .MoveLast
End If
Case 3
If .RecordCount > 0 And Not .EOF Then .MoveLast
End Select
ShowCurrentRecord
End With
Exit Sub
DealError:
msg = "程序执行出错,错误信息如下:" & vbCrLf & Err.Description
ShowError msg
End Sub
Private Sub Form_Load() '(在窗体加载时建立数据库连接,执行查询获得"系统用户"表数据)
On Error GoTo DealError
'建立数据库连接
Set objCn = New Connection
strcn = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & App.Path & "\工资管理.mdb"
objCn.ConnectionString = strcn
objCn.Open
'创建Recordset对象,获取系统用户数据
Set objRs = New Recordset
Set objRs.ActiveConnection = objCn
objRs.CursorLocation = adUseClient
objRs.CursorType = adOpenDynamic
objRs.LockType = adLockOptimistic
Strsql = "SELECT * FROM 系统用户"
objRs.Open Strsql
'显示第一条记录
ShowCurrentRecord
Exit Sub
DealError:
msg = "程序执行出错,错误信息如下:" & vbCrLf & Err.Description
ShowError msg
End Sub
Private Sub ShowCurrentRecord() '定义过程ShowCurrentRecord---显示当前记录
On Error GoTo DealError
If objRs.BOF And objRs.EOF Then
txtNews = "记录:无"
Else
txtUser = objRs!用户名
txtPWD = objRs!口令
If objRs!身份 = "管理员" Then
cmbStatus.ListIndex = 0
Else
cmbStatus.ListIndex = 1
End If
'显示当前记录编号和记录总数
txtNews = "记录:" & objRs.AbsolutePosition & "/" & objRs.RecordCount
End If
Exit Sub
DealError:
msg = "程序执行出错,错误信息如下:" & vbCrLf & Err.Description
ShowError msg
End Sub
Private Sub Form_Unload(Cancel As Integer) '关闭数据库连接,释放ADO
Set objRs = Nothing
objCn.Close
Set objCn = Nothing
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -