📄 b员工基本信息维护.frm
字号:
Index = 1
Left = 240
TabIndex = 22
Top = 480
Width = 1215
End
Begin VB.Label Label5
Caption = "身份证号:"
Height = 255
Index = 1
Left = 3960
TabIndex = 21
Top = 1440
Width = 975
End
Begin VB.Label Label1
Caption = "职称:"
Height = 255
Index = 1
Left = 7440
TabIndex = 20
Top = 1440
Width = 615
End
Begin VB.Label Label5
Caption = "籍贯:"
Height = 255
Index = 0
Left = 7440
TabIndex = 19
Top = 840
Width = 615
End
Begin VB.Label Label7
Caption = "民族:"
Height = 255
Index = 0
Left = 720
TabIndex = 18
Top = 1440
Width = 615
End
Begin VB.Label Label8
Caption = "(8位)"
Enabled = 0 'False
ForeColor = &H000000FF&
Height = 255
Left = 6840
TabIndex = 17
Top = 480
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:"
Height = 255
Left = 4200
TabIndex = 14
Top = 480
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 = 5400
Style = 1 'Graphical
TabIndex = 4
Top = 4800
Width = 800
End
Begin VB.CommandButton CmdCancel
BackColor = &H00C0C0C0&
Caption = "取消"
Height = 360
Left = 4560
Style = 1 'Graphical
TabIndex = 3
Top = 4800
Width = 800
End
Begin VB.CommandButton CmdSave
BackColor = &H00C0C0C0&
Caption = "保存"
Height = 360
Left = 3720
Style = 1 'Graphical
TabIndex = 2
Top = 4800
Width = 800
End
End
Attribute VB_Name = "B员工基本信息维护"
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 部门代码"
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("部门代码") & rs.Fields("部门名称"))
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 职务代码"
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("职务代码") & rs.Fields("职务名称"))
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 = B员工基本信息.YGID '得到所需要修改的员工ID
SQL = " select * from 员工基本信息表 where 员工ID='" & Trim(YGID) & "'"
Set rs = SelectSQL(SQL, msg)
If rs.RecordCount = 1 Then '如果存在这条记录
'为控件赋值
Me.txtYGID = rs.Fields("员工ID")
Me.txtName = rs.Fields("姓名")
Me.CboSex.Text = rs.Fields("性别")
Me.DTPicker1.value = rs.Fields("出生日期")
Me.txtJG = rs.Fields("籍贯")
Me.txtMZhu = rs.Fields("民族")
Me.txtID = rs.Fields("身份证号")
Me.txtZhZMM = rs.Fields("政治面貌")
'保证记录中的所属部门ID与ComboBox中的值相一致
For Index = 0 To Me.CboBMID.ListCount - 1
If (Left(CboBMID.List(Index), 4) = rs.Fields("所属部门ID")) Then
CboBMID.ListIndex = Index
Exit For
End If
Next Index
Me.DTPicker2.value = rs.Fields("进入部门日期")
'保证记录中的职务代码与ComboBox中的值相一致
For Index = 0 To Me.ComZWID.ListCount - 1
If (Left(ComZWID.List(Index), 4) = rs.Fields("职务代码")) Then
ComZWID.ListIndex = Index
Exit For
End If
Next Index
Me.txtZCh = rs.Fields("职称")
Me.DTPicker3.value = rs.Fields("起薪日期")
Me.txtYDW = rs.Fields("原单位")
Me.txtYZC = rs.Fields("原职称")
Me.txtYZW = rs.Fields("原职务")
Me.txtXX = rs.Fields("毕业学校")
Me.DTPicker4.value = rs.Fields("毕业日期")
Me.txtXL = rs.Fields("学历")
Me.txtZY = rs.Fields("专业")
Me.txtYY = rs.Fields("外语")
Me.txtAdd = rs.Fields("地址")
Me.txtPhone = rs.Fields("电话")
Me.txtmail = rs.Fields("邮箱")
'为在岗状态赋值
For Index = 0 To CboZhZ.ListCount - 1
If CboZhZ.List(Index) = rs.Fields("在岗状态") 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 B员工基本信息.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 员工ID='" & 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("员工ID") = Me.txtYGID.Text
rs.Fields("姓名") = Me.txtName.Text
rs.Fields("性别") = Trim(Me.CboSex.Text)
rs.Fields("出生日期") = Me.DTPicker1.value
rs.Fields("籍贯") = Me.txtJG.Text
rs.Fields("民族") = Me.txtMZhu.Text
rs.Fields("身份证号") = Me.txtID.Text
rs.Fields("政治面貌") = Me.txtZhZMM.Text
rs.Fields("所属部门ID") = Left(Trim(Me.CboBMID.Text), 4)
rs.Fields("进入部门日期") = Me.DTPicker2.value
rs.Fields("职务代码") = Left(Trim(Me.ComZWID.Text), 4)
rs.Fields("职称") = Me.txtZCh.Text
rs.Fields("起薪日期") = Me.DTPicker3.value
rs.Fields("原单位") = Me.txtYDW.Text
rs.Fields("原职称") = Me.txtYZC.Text
rs.Fields("原职务") = Me.txtYZW.Text
rs.Fields("毕业学校") = Me.txtXX.Text
rs.Fields("毕业日期") = Me.DTPicker4.value
rs.Fields("学历") = Me.txtXL.Text
rs.Fields("专业") = Me.txtZY.Text
rs.Fields("外语") = Me.txtYY.Text
rs.Fields("地址") = Me.txtAdd.Text
rs.Fields("电话") = Me.txtPhone.Text
rs.Fields("邮箱") = Me.txtmail.Text
rs.Fields("在岗状态") = 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()
'退出操作
B员工基本信息.Enabled = True
Unload Me
End Sub
Private Sub Form_Unload(Cancel As Integer)
'退出操作
B员工基本信息.Enabled = True
rs.Close
Unload Me
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -