案例6 人事管理系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

366Excel2007人事管理系统是企事业单元的一个重要应用,包括聘用、培训、考核和晋升等多个方面,在对人事管理时,需要查询大量的信息,人事管理系统就可以解决这个问题。本章以VBA在人事资料管理的应用为例讲解。人事管理系统虽然单位的大小可能不同,但功能大同小异,基本类似。在此以最常用的应用功能为基础来设计人事管理系统,达到学习目的。人事管理系统主要是对员工资料进行管理。常用功能包括新增员工登记、查询和修改员工资料,实例掌握本单位员工信息和员工信息更新的目的。创建一个窗体,并在窗体上绘制控件用来接收用户的输入,或者显示相应的信息。向窗体添加控件有以下几种方法:1.单击【工具箱】中的控件,然后在窗体单击,控件以默认大小出来,可以通过拖动来改变其大小。2.将控件从【工具箱】中拖到窗体,控件同样以默认大小出来。3.当创建多个相同控件时,可双击【工具箱】中所需的控件,然后在窗体中每单击一次便可创建一个控件。利用窗体的属性可以修改其外观。例如大小、颜色、位置及动作等。同时在编写事件时也会显示各种初始化的设置。在人事管理系统中会用到很多用户窗体和控件的事件,本章以以下几个事件为例重点讲解。1.Initialize事件Initialize事件发生在加载对象后,显示对象前。该事件的语法格式如下:PrivateSubobject_Initialize()2.BeforeUpdate事件object367在控件中的数据要改变前,BeforeUpdate事件触发。该事件的语法格式如下:PrivateSubobject_BeforeUpdate(ByValCancelAsMSForms.ReturnBoolean)3.Click事件鼠标单击控件时触发Click事件,该事件的语法格式如下:PrivateSubobject_Click()人事管理系统最重要的一个环节是保存员工基本信息的员工基本信息表,首先设计员工基本信息表,用来在管理系统中调用。根据设计要求,本系统的功能要求比较简单常用,表格格式简单,使用前设置好表头即可,用户不用直接操作此表,所有操作都通过用户窗体完成。➊ExcelA1➋A2L2➌A1:L1依次在所选的区域中输入对应的项目368Excel2007➍Sheet1➎Sheet1➏Office¾Excel.xlsx单击【重命名】单击【合并后居中】按钮369根据设计要求,完成表头建设即可,里面的数据通过以后在用户窗体来逐步添加。人事管理系统最重要的常用功能是新增员工和查询修改,设计登录窗体时主要体现这两个功能。根据设计要求,可以设计为登录界面,步骤如下。第1步:主窗体建设➊Excel.xlsxSheet2➋Sheet2单击【重命名】370Excel2007➌/➎¾➏去掉三个按钮前的复选项371➐➑¾¾280372Excel2007➒第2步:设置界面标题➊18➍➎第3步:绘制界面按钮➊¾373➋➌➍➊~➌374Excel2007➎Office根据设计要求,完成登录窗体建设,并用来做为以后管理系统的主界面。人事管理系统完成主界面设计后,接下来需要完成功能模块设计,主要是新增员工和查询修改两个功能模块,本节首先设计新增员工模块。新增员工模块的功能是收集整理新员工的基本资料,并添加到员工基本信息表中。虽然可以直接在员工信息表中添加,但表中所有数据处在一个可修改范围,容易误操作破坏原来数据。而本节所设计的是通过一个用户窗体添加数据到原始的员工基本信息表中,隔离原始数据,提高了安全性。Tips375在设计用户窗体时,主要就是完成对员工基本信息表的添加和维护,窗体的各个功能块也应参照员工基本信息表的表头项目来设计完成。第1步:插入窗体➊.xlsxVisualBasic➋VBA¾➌Form1CaptionExcel【Alt+F11】VBA376Excel2007第2步:建立窗体标签➊¾➋AutoSizeTure➌Caption¾377➍➊~➌第3步:建立窗体文本框➊¾Caption378Excel2007➋TextName➌MaxLength4➍➊~➌TextNationTextBirthExcel379TextIDTextDepTextPhoneTextMemo第4步:建立窗体选项按钮➊¾➋OptionManAutoSizeTureCaptionGroupNameGroupSexValueTure380Excel2007➌OptionWomanAutoSizeTureCaptionGroupNameGroupSexValueFalse第5步:建立窗体复选框➊¾ValueTureValueFalse381➋ComboBoxEdu➌ComboBoxTitleComboBoxDuty第6步:建立窗体命令按钮➊¾382Excel2007➋CmdSaveCmdCancel➌➍¾Excel➎.xlsm383完成人事信息管理新增员工的主窗体设计,但没有后台代码的支持还是无法实现新增员工的功能,需要进一步设计后台代码。在用户窗体创建完好各控件后,并设置好各控件属性时,就可以开始编写代码了。在编写窗体的初始化代码,可首先添加复选框控件的下拉列表项目。第1步:设计复选框的下拉列表项代码➊.xlsm¾VisualBasic➋VBAInitialize384Excel2007➌'添加项目到“学历”复合框ComboBoxEdu.AddItem硕士ComboBoxEdu.AddItem本科ComboBoxEdu.AddItem专科ComboBoxEdu.AddItem其它'添加项目到“职称”复合框ComboBoxTitle.AddItem高工ComboBoxTitle.AddItem工程师ComboBoxTitle.AddItem经济师ComboBoxTitle.AddItem会计师ComboBoxTitle.AddItem技术员'添加项目到“职务”复合框ComboBoxDuty.AddItem总经理ComboBoxDuty.AddItem厂长ComboBoxDuty.AddItem主任ComboBoxDuty.AddItem科长ComboBoxDuty.AddItem组长第2步:设计出生年月代码385➊TextBirth➋BeforeUpdate➌IfNotIsDate(TextBirth.Value)Then'判断是否为日期格式MsgBox请输入正确的出生年月!,,提示'显示提示信息TextBirth.SelStart=0'设置文本框的起始位置TextBirth.SelLength=Len(TextBirth.Value)'设置文本框选取文字的长度Cancel=True'设置焦点停留在改控件EndIf386Excel2007第3步:设计身份证号代码➊TextID➋BeforeUpdate➌DimstridAsString'暂存身份证号strid=TextID.ValueIfLen(strid)15AndLen(strid)18ThenMsgBox身份证号错误,请重新输入15或18位的身份证号!,,提示TextID.SelStart=0TextID.SelLength=Len(TextID.Value)Cancel=TrueEndIf387第4步:设计“取消”按钮代码➊CmdCancel➋Me.Hide'隐藏用户窗体Sheets(登录界面).Activate'激活登录界面工作表第5步:设计“增加”按钮代码➊CmdSave388Excel2007➋IfTextName.Value=Then'判断姓名是否为空MsgBox请输入姓名!,,提示'显示提示信息TextName.SetFocus'设置焦点到姓名框ExitSub'退出子过程EndIfAdd'调用添加数据子过程第6步:设计“Add”子过程代码➊389➋¾➌add➍DimintRowAsInteger'定义变量,保存行数DimstrBhAsString'定义变量,保持编号Sheets(员工基本信息表).Activate'激活员工基本信息表Sheets(员工基本信息表).Range(A1).Select390Excel2007'获取员工基本信息表已有数据行数intRow=ActiveCell.CurrentRegion.Rows.CountstrBh=Cells(intRow,1)'取得最后编号'按规则产生新的编号strBh=Y&Format(Right(strBh,4)+1,0000)intRow=intRow+1'将用户窗体上的数据填充到员工基本信息表的新行上Cells(intRow,1)=strBhCells(intRow,2)=TextName.ValueIfOptionMan.ValueThenCells(intRow,3)=男ElseCells(intRow,3)=女EndIfCells(intRow,4)=TextNation.ValueCells(intRow,5)=TextBirth.ValueCells(intRow,6)=ComboBoxEdu.ValueCells(intRow,7).NumberFormatLocal=@'设置身份证列为文本格式Cells(intRow,7)=TextID.ValueCells(intRow,8)=ComboBoxTitle.ValueCells(intRow,9)=ComboBoxDuty.ValueCells(intRow,10)=TextDep.ValueCells(intRow,11).NumberFormatLocal=@'设置联系电话为文本格式Cells(intRow,11)=TextPhone.ValueCells(intRow,12)=TextMemo.Value第7步:设计“新增员工”子过程代码➊¾391➋1¾➌¾392Excel2007➍Form1.Show第8步:登录界面的连接➊.xlsm➋393➌➍➎¾➏.xlsm394Excel2007完成人事信息管理新增员工的主窗体代码设计,需要测试其功能是否达到需求。在所建“员工基本信息表”中,一定注意要有数据,因为新增员工代码需要从一个已有的编号开始,所以测试前一定切换到“员工基本信息表”中添加一个员工编码。➊.xlsm➋395➌➍396Excel2007➎➏➐1970-08-08397通过测试找出问题和不足,并测试功能是否实现,是否可以满足需求。查询修改是人事管理系统的另一重要功能模块,通过查询可以从大量的数据中找出需要的信息,可以极大的提高了工作效率,方便对信息的管理。设计查询功能时,先通过InputBox函数接收用户的输入,然后在“员工基本信息表”中进行查询,若查询有此数据,便显示在用户窗体。设计查询功能时,要输入一定查询依据,而一般情况是输入查询员工的编号或姓名,并且需要判断是否有效。➊.xlsm¾VisualBasic398Excel2007➋VBA¾1➌PublicstrStatusAsString'全局变量,保存窗体的使用状态PublicintCurrentRowAsInteger'全局变量,保存已找到数据的行数➍Sub查询资料()DimstrSAsString'保存InputBox函数的输入值strStatusstrStatusExcel【Alt+F11】VBA399DimintRowAsInteger'暂存查找到的数据行,保存编号和姓名列DimrngNoAsRange,rngNameAsRange'单元格区域对象,'通过InputBox函数接收用户输入值,可为编号或姓名strS=InputBox(请输入员工的编号或姓名进行查询:,查询员工资料)IfstrSThen'在员工基本信息表中,查找编号和姓名列SetrngNo=Sheets(员工基本信息表).UsedRange.Find(编号)SetrngName=Sheets(员工基本信息表).UsedRange.Find(姓名)IfrngNoIsNothingOrrngNameIsNothingThenMsgBox员工基

1 / 45
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功