📄 b员工基本信息维护.frm
字号:
Index = 1
Left = 240
TabIndex = 21
Top = 480
Width = 1215
End
Begin VB.Label Label5
Caption = "身份证号:(18位)"
Height = 255
Index = 1
Left = 3960
TabIndex = 20
Top = 1440
Width = 975
End
Begin VB.Label Label1
Caption = "职称:"
Height = 255
Index = 1
Left = 7440
TabIndex = 19
Top = 1440
Width = 615
End
Begin VB.Label Label5
Caption = "籍贯:"
Height = 255
Index = 0
Left = 7440
TabIndex = 18
Top = 840
Width = 615
End
Begin VB.Label Label7
Caption = "民族:"
Height = 255
Index = 0
Left = 720
TabIndex = 17
Top = 1440
Width = 615
End
Begin VB.Label Label2
Caption = "性别:"
Height = 255
Left = 720
TabIndex = 16
Top = 960
Width = 735
End
Begin VB.Label Label6
Caption = "职务代码:"
Height = 375
Index = 0
Left = 3960
TabIndex = 15
Top = 1920
Width = 975
End
Begin VB.Label Label3
Caption = "员工ID:(8位)"
Height = 375
Left = 4200
TabIndex = 14
Top = 360
Width = 855
End
Begin VB.Label Label4
Caption = "出生日期:"
Height = 255
Left = 3960
TabIndex = 13
Top = 960
Width = 975
End
End
Begin VB.CommandButton CmdAdd
BackColor = &H00C0C0C0&
Caption = "添加"
Height = 360
Left = 2880
Style = 1 'Graphical
TabIndex = 5
Top = 4800
Width = 800
End
Begin VB.CommandButton CmdExit
BackColor = &H00C0C0C0&
Caption = "退出"
Height = 360
Left = 6240
Style = 1 'Graphical
TabIndex = 4
Top = 4800
Width = 800
End
Begin VB.CommandButton CmdCancel
BackColor = &H00C0C0C0&
Caption = "取消"
Height = 360
Left = 5160
Style = 1 'Graphical
TabIndex = 3
Top = 4800
Width = 800
End
Begin VB.CommandButton CmdSave
BackColor = &H00C0C0C0&
Caption = "保存"
Height = 360
Left = 4020
Style = 1 'Graphical
TabIndex = 2
Top = 4800
Width = 800
End
End
Attribute VB_Name = "frmstaffInfoAdmin"
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
Public flag As String '判断是新增记录还是修改记录
Dim YGID As String '保存员工ID
Private Sub Form_Load()
'初始化性别信息ComboBox
CboSex.AddItem ("男")
CboSex.AddItem ("女")
CboSex.ListIndex = 0 '默认性别为“男”
'初始化所属部门IDComboBox
SQL = " select * from 部门信息表 order by departmentID"
Set rs = SelectSQL(SQL, msg)
If rs.RecordCount = 0 Then '如果没有部门信息
MsgBox ("请先建立部门类型!")
Exit Sub
Else
Do While Not rs.BOF And Not rs.EOF
'添加到ComboBox列表
Me.CboBMID.AddItem (rs.Fields("departmentID") & rs.Fields("departmentName"))
rs.MoveNext '指向下一条记录
Loop
Me.CboBMID.ListIndex = 0 '默认ComboBox
'截取部门信息的前4位作为员工ID
Me.txtYGID.Text = Left(Trim(CboBMID.Text), 4)
rs.Close
End If
'初始化职务代码ComboBox
SQL = " select * from 职务信息表 order by dutyID"
Set rs = SelectSQL(SQL, msg)
If rs.RecordCount = 0 Then '如果没有职务信息
MsgBox ("请先建立职务信息类型!")
Exit Sub
Else
Do While Not rs.BOF And Not rs.EOF
'添加到ComboBox列表
Me.ComZWID.AddItem (rs.Fields("dutyID") & rs.Fields("dutyName"))
rs.MoveNext '指向下一条记录
Loop
Me.ComZWID.ListIndex = 0 '默认ComboBox
rs.Close
End If
'初始化在岗状态ComboBox
CboZhZ.AddItem ("在职")
CboZhZ.AddItem ("离职退休")
CboZhZ.AddItem ("返聘")
CboZhZ.AddItem ("在职培训")
CboZhZ.ListIndex = 0 '默认在岗状态为在职
'判断是添加还是修改
If flag = "Add" Then
Me.Caption = "员工基本信息添加"
FramePerson.Caption = "员工基本信息添加"
SQL = " select * from 员工基本信息表 "
Set rs = SelectSQL(SQL, msg)
'设置控件的可用性
CmdAdd.Visible = True
CmdSave.Enabled = False
CmdCancel.Enabled = False
FramePerson.Enabled = False
Else
Me.Caption = "员工基本信息修改"
FramePerson.Caption = "员工基本信息修改"
'设置控件的可用性
CmdAdd.Visible = False
txtYGID.Enabled = False
txtName.Enabled = False
CboBMID.Enabled = False
Call ShowData '显示数据
End If
End Sub
Private Sub ShowData()
'在控件中显示数据
YGID = frmstaffInfo.YGID '得到所需要修改的员工ID
SQL = " select * from 员工基本信息表 where staffID='" & Trim(YGID) & "'"
Set rs = SelectSQL(SQL, msg)
If rs.RecordCount = 1 Then '如果存在这条记录
'为控件赋值
Me.txtYGID = rs.Fields("staffID")
Me.txtName = rs.Fields("name")
Me.CboSex.Text = rs.Fields("sex")
Me.DTPicker1.value = rs.Fields("birth")
Me.txtJG = rs.Fields("birthPlace")
Me.txtMZhu = rs.Fields("nation")
Me.txtID = rs.Fields("identification")
Me.txtZhZMM = rs.Fields("political")
'保证记录中的所属部门ID与ComboBox中的值相一致
For Index = 0 To Me.CboBMID.ListCount - 1
If (Left(CboBMID.List(Index), 4) = rs.Fields("respectiveDptID")) Then
CboBMID.ListIndex = Index
Exit For
End If
Next Index
Me.DTPicker2.value = rs.Fields("enterDptDate")
'保证记录中的职务代码与ComboBox中的值相一致
For Index = 0 To Me.ComZWID.ListCount - 1
If (Left(ComZWID.List(Index), 4) = rs.Fields("dutyID")) Then
ComZWID.ListIndex = Index
Exit For
End If
Next Index
Me.txtZCh = rs.Fields("title")
Me.DTPicker3.value = rs.Fields("startpayDate")
Me.txtYDW = rs.Fields("originalEnterprise")
Me.txtYZC = rs.Fields("originalTitle")
Me.txtYZW = rs.Fields("originalDuty")
Me.txtXX = rs.Fields("graduationSchool")
Me.DTPicker4.value = rs.Fields("graduationDate")
Me.txtXL = rs.Fields("schoolRecord")
Me.txtZY = rs.Fields("major")
Me.txtYY = rs.Fields("foreignLanguage")
Me.txtAdd = rs.Fields("address")
Me.txtPhone = rs.Fields("telphone")
Me.txtmail = rs.Fields("email")
'为在岗状态赋值
For Index = 0 To CboZhZ.ListCount - 1
If CboZhZ.List(Index) = rs.Fields("inpostType") Then
CboZhZ.ListIndex = Index
Exit For
End If
Next Index
Else
MsgBox ("员工信息检索出错!")
End If
End Sub
Private Sub CmdAdd_Click()
'重置控件
CboBMID.ListIndex = 0
Me.txtYGID.Text = Left(Trim(CboBMID.Text), 4)
Me.txtName = ""
Me.CboSex.ListIndex = 0
Me.DTPicker1.Refresh
Me.txtJG = ""
Me.txtMZhu = ""
Me.txtID = ""
Me.txtZCh = ""
Me.DTPicker2.Refresh
Me.ComZWID.ListIndex = 0
Me.txtZhZMM = ""
Me.DTPicker3.Refresh
Me.txtYDW = ""
Me.txtYZC = ""
Me.txtYZW = ""
Me.txtXX = ""
Me.DTPicker4.Refresh
Me.txtXL = ""
Me.txtZY = ""
Me.txtYY = ""
Me.txtAdd = ""
Me.txtPhone = ""
Me.txtmail = ""
Me.CboZhZ.ListIndex = 0
CmdAdd.Enabled = False
CmdSave.Enabled = True
CmdCancel.Enabled = True
FramePerson.Enabled = True
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 '更新数据
If flag = "Add" Then '如果标志为"Add"
MsgBox ("成功添加数据!")
CmdAdd.Enabled = True
CmdSave.Enabled = False
CmdCancel.Enabled = False
Else
MsgBox ("成功更新数据!")
End If
Call frmstaffInfo.ReLoad
Exit Sub
ErrMsg: '报告出错信息
MsgBox Err.Description, vbExclamation, "出错"
End Sub
Private Function CheckData() As Boolean
'检查数据的合法性
Dim rst As ADODB.Recordset
Dim msgt As String
msgt = ""
'检查数据
If Trim(Me.txtYGID.Text) = "" Then '检查员工ID是否为空
msgt = "员工ID为空; "
ElseIf Not Len(Trim(txtYGID.Text)) = 8 Then '检查员工ID是否为8位
msgt = msgt & "员工ID不是8位; "
ElseIf Trim(Me.txtName.Text) = "" Then '检查姓名是否为空
msgt = msgt & "姓名为空; "
ElseIf Trim(Me.CboSex.Text) = "" Then '检查性别是否为空
msgt = msgt & "性别为空; "
ElseIf Trim(Me.txtID.Text) = "" Then '检查身份证号别是否为空
msgt = msgt & "身份证号为空; "
ElseIf Not Len(Trim(txtID.Text)) = 18 Then '检查身份证号是否为18位
msgt = msgt & "身份证号不是18位; "
ElseIf Trim(Me.CboBMID.Text) = "" Then '检查所属部门ID是否为空
msgt = msgt & "所属部门ID为空; "
ElseIf Trim(Me.ComZWID.Text) = "" Then '检查职务代码是否为空
msgt = msgt & "职务代码为空; "
End If
If CboBMID.ListCount > 0 Then '检查员工ID是否合法
If Left(Trim(Me.txtYGID.Text), 4) <> Left(Trim(CboBMID.Text), 4) Then
'当员工ID的前四位和部门ID不相等
msgt = msgt & "员工ID不合法,前四位为部门号; "
End If
End If
If Not msgt = "" Then '如果错误消息不为空,给出错误提示
MsgBox (msgt)
CheckData = False '返回False
Exit Function
End If
'检查唯一性
SQL = " select * from 员工基本信息表 where staffID='" & Trim(txtYGID.Text) & "'"
Set rst = SelectSQL(SQL, msg)
'如果是进行添加操作且已经存在该记录,提示重复添加
If flag = "Add" And rst.RecordCount > 0 Then
MsgBox ("该员工信息已经存在,重复添加!")
rst.Close
CheckData = False '返回False
Exit Function
End If
CheckData = True '合法返回True
rst.Close
End Function
Private Sub setData()
'为字段设置数据
rs.Fields("staffID") = Me.txtYGID.Text
rs.Fields("name") = Me.txtName.Text
rs.Fields("sex") = Trim(Me.CboSex.Text)
rs.Fields("birth") = Me.DTPicker1.value
rs.Fields("birthPlace") = Me.txtJG.Text
rs.Fields("nation") = Me.txtMZhu.Text
rs.Fields("identification") = Me.txtID.Text
rs.Fields("political") = Me.txtZhZMM.Text
rs.Fields("respectiveDptID") = Left(Trim(Me.CboBMID.Text), 4)
rs.Fields("enterDptDate") = Me.DTPicker2.value
rs.Fields("dutyID") = Left(Trim(Me.ComZWID.Text), 4)
rs.Fields("title") = Me.txtZCh.Text
rs.Fields("startpayDate") = Me.DTPicker3.value
rs.Fields("originalEnterprise") = Me.txtYDW.Text
rs.Fields("originalTitle") = Me.txtYZC.Text
rs.Fields("originalDuty") = Me.txtYZW.Text
rs.Fields("graduationSchool") = Me.txtXX.Text
rs.Fields("graduationDate") = Me.DTPicker4.value
rs.Fields("schoolRecord") = Me.txtXL.Text
rs.Fields("major") = Me.txtZY.Text
rs.Fields("foreignLanguage") = Me.txtYY.Text
rs.Fields("address") = Me.txtAdd.Text
rs.Fields("telphone") = Me.txtPhone.Text
rs.Fields("email") = Me.txtmail.Text
rs.Fields("inpostType") = Trim(Me.CboZhZ.Text)
End Sub
Private Sub CboBMID_Click()
'保证员工的ID前四位与部门ID相同,即员工ID的前四位与部门ID相同
If CboBMID.ListCount > 0 Then
Me.txtYGID.Text = Left(Trim(CboBMID.Text), 4)
End If
End Sub
Private Sub cmdCancel_Click()
'取消操作
If flag = "Add" Then
'重置控件
Call CmdAdd_Click
CmdAdd.Enabled = True
Else
Call ShowData '重新显示数据
End If
End Sub
Private Sub CmdExit_Click()
'退出操作
frmstaffInfo.Enabled = True
Unload Me
End Sub
Private Sub Form_Unload(Cancel As Integer)
'退出操作
frmstaffInfo.Enabled = True
rs.Close
Unload Me
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -