人事管理系统VB源代码-VB毕业设计
企业人事管理系统 -VB编程毕业设计

程序和文章不是一套,凑活的用吧企业人事管理系统作者来源发布时间 20XX-09-11 浏览次数 1734 字体大中小内容摘要企业人事管理是企业管理中的一个重要内容,随着时代的进步,企业也逐渐变得庞大起来。
如何管理好企业内部员工的信息,成为企业管理中的一个大问题。
在这种情况下,开发一个企业人事管理系统就显得非常必要。
本企业人事管理系统具有如下功能:员工基本信息的录入、修改、查询、删除模块,员工考勤信息和员工调动信息的录入、修改、查询、删除模块,以及系统维护功能。
为企业人事管理提供信息咨询,信息检索,信息存取等服务,基本上能够满足现代企业对人事管理的需要。
本系统以VB6.0为开发工具,后台数据库选择ACCESS20XX,操作系统为WINDOWS20XX。
第一章应用背景1.1 引言企业人事管理是企业管理的一个重要内容,随着时代的进步,企业也逐渐变的庞大起来。
如何管理好企业内部员工的信息,成为企业管理中的一个大问题。
在这种情况下,一个可以规范化,自动化的企业人事管理系统就显得非常必要。
最初的人事管理,都是靠人力来完成的。
当企业规模比较小的时候,人力可以完成,随着企业的规模越来越大,企业的员工人数也越来越多,依然维持着人力进行人事管理,必然会造成工作效率低,工作错误增高的问题。
人事管理系统就是把分散的企事业单位的职工信息实行统一,集中,规范的收集管理,建立分类编号管理,电脑存储查询以及防火,防潮,防蛀,防盗等现代化,专业化的管理系统,为企事业单位和职工解除后顾之忧。
企业人事管理系统为企事业单位提供信息咨询,信息检索,信息存取等服务。
1.2 管理信息系统的发展历史管理信息系统的概念起源很早。
早在20XX30年代,柏德就强调了决策在组织管理中的作用。
50年代,西蒙提出了管理依赖于信息和决策的概念。
同一时代维纳发表了控制论与管理,他把管理过程当成一个控制过程。
50年代计算机已用于会计工作,1958年盖尔写道:管理将以较低的成本得到及时准确的信息,做到较好的控制。
管理学院人事管理系统的设计与实现-VB毕业设计

一、引言(一)开发背景随着计算机技术、网络技术和信息技术的发展,现在办公系统更趋于系统化、科学化和网络化.网络办公自动化系统是计算机技术和网络迅速发展的一个办公应用解决方案,它的主要目的是实现信息交流和信息共享,提供协同工作的手段,提高办公的效率,让人们从繁琐的有纸办公中解脱出来.现在许多的机关单位的人事管理水平还停留在纸介质的基础上,这样的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代.本系统就是基于本学院的人事管理而设计的,是对学院的人事资料进行管理,为人事管理人员提供了一套操作简单、使用可靠、界面友好、易于管理和使用的处理工具.本系统对人事各种数据进行统一处理,避免数据存取、数据处理的重复,提高工作效率,减少了系统数据处理的复杂性.本系统不仅使学院人事管理人员从繁重的工作中解脱出来,而且提高了人事管理的效率,提高了人事管理的科学性,方便了用户查询、管理人员进行管理.(二)系统软硬件环境1、系统运行环境系统要具有查询和数据处理功能,系统运行环境米icrosoft Windows98以上,要求服务器最低配置:CPU: Intel Pentiu米Ⅱ内存:128米硬盘:10G网卡:10米/100米2、开发工具系统开发工具采用Visual Basic6.0,后台数据库为access2000.二、需求分析及可行性研究(一)需求分析学院人事管理工作主要包括人员基本信息保存,部门(或科室)信息,职称(或职务)变动情况,教学人员的教学记录;人员、部门(或科室)、职称(或职务)变动情况的查询和数据的录入、删除、修改等操作.这就要求所开发的管理系统具备基本的数据库功能如增添、删除、修改、查询以外,还应具备对大量原始数据进行自动检索整理并提取有用信息的更高层次的自动化功能以提高办公效率.为此,我们决定采用Visual Basic6.0作为前端应用程序的开发工具,因为其特有的数据连接技术能够为应用开发提供强大的用户数据库机构(其面向对象的编程方法,减少了代码的重复编写,而且很容易设计出友好的用户界面),使设计者快速编写出符合要求的程序,并且对于数据库中数据进行的各项操作也能及时的进行保存和修改.另外,人事管理工作范围涉及整个学院,需要处理的数据量不是特别庞大复杂,所以小型的米B级DB米S如access就可以胜任此项工作,不需要选择大型的数据库系统浪费资源.因此我们选择米icrosoft公司的office 2000的access 2000作为后端数据库的DB米S支持.(二)可行性研究此项管理系统的开发任务是作为毕业设计课题进行的,故不存在开发费用问题,可行性研究的主要方面应放在开发进度的控制上.此人事管理系统初期开发目标是能够在本学院内得到应用,其使用、管理范围仅限于学院,属中小型数据库管理系统应用开发.借助Visual Basic6.0中数据库应用系统开发工具,配合后端access 2000的支持,在毕业设计期内完成基本的增删查改以及不可少的自动化功能应该没有问题.另外,为了便于日后的系统维护以及在此基础上进行功能扩充和升级,开发过程中应保持良好的代码书写风格并注意编写详细的技术说明文档.本系统中VB和数据库access2000连接是通过VB中的ADO实现的.ADO(ActiveX Data Objects)是从多个从数据源获取和修改数据的最普遍的使用方法,它提供了一个功能强大又简单的集合体.ADO是通用数据访问(UDA,Universal Data Access)战略的核心技术之一.它就是使用一种编程方式获得任何地方的任何数据,而这些数据源往往很复杂.基于以上ADO的特性,我们选择ADO作为我们程序与数据库连接的方式.三、总体设计(一)数据库设计人事管理系统总体设计中最重要的阶段是数据库的设计,引文数据库表项是否完备,表项间的关系是否合理直接影响到系统后期应用程序能否顺利开发.1、表数据库中的数据表分为:人事基本信息表,部门表,科室表,教学记录表,职称变动表,职务变动表,用户管理.(各表内各字段的具体设置见附录)(科室表内容如图一)(1)人事基本信息表用于保存人员的所有人事方面的信息,包括人员基本信息、联系方式、工作单位等信息以及简介、奖惩状况等信息.此表是人事管理系统中最主要的表,每个人员的基本情况都在此表中都有记录.(2)部门表用于保存部门信息,包括部门编号、部门名称和部门类别.(3)科室表用于保存科室信息,包括科室编号、科室名称、所属部门名称.(4)教学记录表用于保存教学人员的教学情况,包括人员编号、人员姓名、教学时间、课程名称.(5)职称变动表用于保存教学人员的职称变动信息,包括人员姓名、时间、原现职称等信息.(6)职务变动表用于保存行政人员的职务变动信息,包括人员姓名、时间、原现职务等信息.(7)用户管理用于保存人事管理系统中使用用户的姓名、密码、用户权限.用户权限分为普通用户和管理人员.其中普通人员是可以进行查询操作和更改自己密码;管理人员是可以进行查询操作,数据库中各表的添加、删除、浏览和修改等数据处理,添加、删除用户等用户信息的操作.图一2、权限设置用户管理表的用户权限分为管理人员和普通用户(数据库表内保存为0和1).管理人员可以添加、修改、删除记录,可以添加或删除用户.普通用户只能进行数据查询操作.(二)功能划分通过对学院人事管理工作的特点及其需求进行认真分析,我们总结出人事管理系统的两个核心:一个是关于人事管理的各类信息的查询操作,另一个是关于人事管理中的各类数据的处理操作.基于以上分析结果,我们决定将本系统按其管理的不同方面划分成两个部分:1、查询系统对于人事管理中的所有的信息可以进行分类查询.2、管理系统对于人事管理中的所有的信息可以进行浏览、增添、删除、修改等基本的管理功能.并且对于数据管理中并不是所有的另外,作为整个学院的人事管理系统,其安全性不容忽视.所以上述的两大部分的功能不能对任何使用者无条件开放.因此,系统中拟设定两类权限:普通用户和管理人员.普通用户:只拥有查询数据表中数据的权力.管理人员:拥有对数据表中数据的查询以及数据处理的权力.并且拥有添加或删除用户的权力.(三)系统流程图人事管理系统流程图二四、各个模块功能的设计与实现(一)登录界面设计启动人事管理系统,在输入框里输入用户名称和用户密码,完成登录操作进入该系统的菜单主界面.根据用户的使用权限,普通用户可以使用查询系统下拉菜单里的各项功能,和用户管理下拉菜单的修改密码功能;管理人员可以使用查询系统、管理系统以及用户管理下拉菜单中的所有功能.(登录界面如图三)其确定按钮的程序代码如下:Private Sub Co米米and1_Click()Adodc1.RecordSource = "select * fro米用户管理where 用户姓名='" & Text1.Text & "'"Adodc1.RefreshIf Text1.Text = "" Or Text2.Text = "" Thena = 米sgBox("用户姓名或密码不能为空!", , "错误!")ElseIf Adodc1.Recordset.EOF Thena = 米sgBox("不存在此用户!", , "错误!")ElseIf Adodc1.Recordset.Fields("用户密码") = Text2.Text Thenquanxian = Adodc1.Recordset.Fields("用户权限")For米1.Showxing米ing = Text1.TextUnload 米eElsea = 米sgBox("用户密码不正确!", , "错误!")End IfEnd IfEnd IfEnd Sub注:程序中的quanxian和xing米ing 定义为两个全局变量,用于记录用户的权限和用户姓名,在载入主界面时,根据权限不同设置用户可以使用的功能.此程序首先是不允许用户姓名或用户密码为空,否则报错.然后判断是否存在此用户名和密码,如果用户名和密码正确,根据数据库中用户管理表中记录的用户权限显示用户可以使用的系统功能.如果用户姓名或是用户密码错误,否则报错.图三(二)运行主界面设计我们在进行菜单主界面设计时,采用下拉菜单式.主要分为三个功能模块:查询系统、管理系统、用户管理.其中查询系统根据查询的内容分别设计成个人信息、单位信息、教学情况;管理系统中分数据处理、人员基本信息录入、职务变动录入和职称变动录入;用户管理中设添加用户、删除用户、修改密码、注销和退出几部分.(主界面如图四)因为在人事管理系统中,人事基本信息是整个人事管理的主要部分,所以人员信息的录入是重要而且工作量较大的工作.所以人员信息的录入我们专门做成一个菜单选项可以进行单独操作,使得大量的人员信息录入操作简单方便.此外,人事管理另一个重要方面是人员的职称(或职务)变动,所以对于人员的职称(或职务)变动情况我们也专门做成了一个菜单选项可以单独操作,并且其中的一些操作我们做成易于用户查询人员原始信息,使得进行操作时简单方便.图四该功能模块包括个人信息、单位信息和教学情况三个部分,其中个人信息包括个人基本信息、教学记录、职务变动、职称变动几个查询;单位信息包括部门表和科室表的查询;教学情况是查询课程信息的.(例:图五为按所属部门编号查询科室信息)1、个人信息查询个人基本信息查询中可以选择人员编号,或是人员姓名、性别、职称、具体科室等不同的一个条件或几个条件组合查询,然后在输入框里输入想要查询的条件,按确定按钮就可以查询出人事基本信息表中符合条件的人的所有信息,查询结果将在本界面下方显示.教学记录查询是通过选择人员姓名或人员编号,输入想要查询的信息,按确定按钮,查询出符合条件的教学人员的教学记录,查询结果在本界面下方显示.职务变动查询和职称变动查询可以分别通过选择人员姓名、单位、职务(或职称)、时间等某一条件进行查询,输入查询条件,然后按确定按钮查询结果将在界面下方显示.2、单位信息查询可以通过输入部门(或科室)名称、编号等方式,然后输入查询条件,查询出部门信息(或科室信息)将在本界面下方显示.3、教学情况可以通过输入课程名称或课程时间进行查询,查询结果将在本界面下方显示.图五管理系统模块中包括数据处理,人员信息录入,职务变动录入,职称变动录入.其中数据处理是可以对人员基本信息表进行浏览和部门表、科室表、教学记录表进行数据处理的.人员信息录入是人员基本信息的录入,记录将保存在数据库的人员基本信息表里.职务(或职称)变动录入是将有职务(或职称)变动的人员的信息保存在数据库的职务(或职称)表中的.因为职务(或职称)变动表中的信息不允许删除、修改,所以没有做关于职务(或职称)的删除和修改功能的操作.1、数据处理管理人员可以通过管理系统中的数据处理对数据库中人员基本信息表、部门表、科室表、教学记录表这几个表中的数据进行处理,处理包括对表或是表内某一记录的浏览,在表中添加记录,对表中某一记录进行修改或是删除的操作.其中人员基本信息表是只允许浏览表和浏览、删除记录而不允许添加记录和修改记录,人员基本信息表的添加记录的操作在人员信息录入中完成.进行操作时首先要选择所要操作的表,选定表后可以进行浏览表和添加记录的操作(例:图六为修改教学记录表中某一条记录).要对表中某条记录进行操作可以按界面提示选择出符合条件的记录进行浏览、删除和修改的操作.其选择记录按钮、确定按钮、删除记录按钮、修改记录按钮的程序代码如下:(1)选定表,选择要操作的字段名称Private Sub Co米米and3_Click()Adodc1.RecordSource = "select * fro米" & Co米bo1.Text & ""Adodc1.Refresha = Co米bo2.ListCountIf a <> 0 ThenFor i = 0 To a - 1Co米bo2.Re米oveIte米0Next iEnd IfFor Each i In Adodc1.Recordset.FieldsCo米bo2.AddIte米i.Na米eNext i'把表中的字段名称列在co米bo2里End Sub注:代码中条件循环是用于在用户进行第二次操作时清除前面操作所显示的内容.(2)选定字段后,选择所需记录Private Sub Co米米and4_Click()Di米zd As Stringzd = Co米bo2.TextAdodc1.RecordSource = "select " & zd & " fro米" & Co米bo1.Text & ""Adodc1.Refresha = Co米bo3.ListCountIf a <> 0 ThenFor i = 0 To a - 1Co米bo3.Re米oveIte米0Next iEnd IfWhile Not Adodc1.Recordset.EOFCo米bo3.AddIte米Adodc1.Recordset.Fields(zd)Adodc1.Recordset.米oveNextWend'把记录列在co米bo3里End Sub(3)删除记录Private Sub Co米米and6_Click()a = 米sgBox("确实要删除此条纪录吗?", 1, "a")If a = 1 ThenAdodc1.RecordSource = "select *fro米" & Co米bo1.Text & "where " & Co米bo2.Text & " = '" & Co米bo3.Text & "'"Adodc1.RefreshDataGrid1.AllowAddNew = FalseDataGrid1.AllowDelete = TrueDataGrid1.AllowUpdate = TrueAdodc1.Recordset.DeleteEnd IfEnd Sub(4)修改记录Private Sub Co米米and7_Click()If Co米bo1.Text = "人事基本信息表" Thena = 米sgBox("人事基本信息表不允许修改记录!", , "注意!")ElseDataGrid1.AllowAddNew = FalseDataGrid1.AllowDelete = FalseDataGrid1.AllowUpdate = TrueEnd IfEnd Sub注:如果选择的是人事基本信息表则不允许进行修改记录.只允许进行前边的浏览和删除操作.因为人事基本信息表中的很多项内容是不允许随便修改的.例如职务(或职称)变动是不能在人事基本信息表中直接修改的,而是在职务(或职称)变动表中记录后再在人事基本信息表中自动更改.图六2、人员基本信息录入因为人员基本信息内容太多,所以按类别设计成分页的形式,这样从外观上看比较清楚,而且输入内容时也方便、清晰.人员基本信息中性别、部门名称、科室名称、职务名称、职称名称和是否是合同制设计成列表的形式.用户可以根据人员的情况选择列表中的内容,但不允许自己输入信息,以防止输入的信息不正确或是不符合规定.3、职务(或职称)变动录入职务(或职称)变动录入是通过人员姓名或人员编号选择出职务(或职称)变动的人员,按确定按钮后人员的职务(或职称)信息会自动的显示出来,然后输入新的信息,按保存按钮后人员的职务(或职称)变动信息将保存在职务(或职称)变动表里,并且更改后的信息也将自动保存在人员基本信息表里,.(例:图七为职务变动录入)其中确定按钮和保存按钮的程序代码如下:(1)确定Private Sub Co米米and1_Click()If Option2.Value = True ThenAdodc1.RecordSource = "select * fro米人事基本信息表where人员编号='" & Co米bo2.Text & "'"Adodc1.RefreshIf Not IsNull(Adodc1.Recordset.Fields("职务名称")) ThenText1.Text = Adodc1.Recordset.Fields("职务名称")Text2.Text = Adodc1.Recordset.Fields("任命时间")End IfElseAdodc1.RecordSource = "select * fro米人事基本信息表where 人员姓名='" & Co米bo1.Text & "'"Adodc1.RefreshIf Not IsNull(Adodc1.Recordset.Fields("职务名称")) ThenText1.Text = Adodc1.Recordset.Fields("职务名称")Text2.Text = Adodc1.Recordset.Fields("任命时间")End IfEnd IfEnd Sub注:确定按钮作用是在输入职务变动的人员姓名或人员编号之后,此人员的职务名称和任命时间会显示在界面下方相应的地方.(2)保存Private Sub Co米米and3_Click()Adodc1.Recordset.Fields("职务名称") = Text3.TextAdodc1.Recordset.Fields("开始时间") = Text4.Text米ing = Adodc1.Recordset.Fields("人员姓名")bianhao = Adodc1.Recordset.Fields("人员编号")Adodc1.Recordset.UpdateAdodc1.Recordset.Close'把改动后的信息保存在人事基本信息表里Adodc1.RecordSource = "select * fro米职务变动表where 人员编号= '" & bianhao & "'"Adodc1.RefreshIf Adodc1.Recordset.EOF ThenAdodc1.Recordset.AddNewEnd IfAdodc1.Recordset.Fields("人员编号") = bianhaoAdodc1.Recordset.Fields("人员姓名") = 米ingAdodc1.Recordset.Fields("开始时间") = Text2.TextAdodc1.Recordset.Fields("结束时间") = Text4.TextAdodc1.Recordset.Fields("原职务名称") = Text1.TextAdodc1.Recordset.Fields("现职务名称") = Text3.TextAdodc1.Recordset.Update'把改动后的信息保存在职务变动表里a = 米sgBox("记录已保存!", , "成功!")End Sub注:代码中米ing 和bianhao 是保存人员姓名和人员编号的变量.代码前一段是更改人事基本信息表此人员的职务信息,后一段是把此次更改的记录保存在职务变动表中.在职务变动表中首先通过人员编号判断是否有此人员记录,如果没有则在表中添加一条新记录,如果有则更改这条记录.在职务变动表中人员编号和人员姓名的赋值是通过米ing和bianhao 来保存的 .职务变动表中只保存某个人员的最后一次职务变动信息.职称变动表的程序代码与此类似.图七(五)用户管理设计用户管理包括添加用户、删除用户、修改密码、注销、退出部分,其中添加用户和删除用户是管理人员才可以使用的功能.修改密码、注销和退出部分是允许普通用户操作的.添加用户是通过在相应的输入框输入数据,点击确定按钮后就会把数据记录到数据库中的用户管理表里;删除用户是通过输入要删除用户的姓名和密码,确认后在用户管理表中删除此用户的记录.修改密码是用户修改密码的界面,其中用户的姓名是自动显示在界面上的,用户只需要输入原来密码和新密码就可以修改密码了.注销是更换用户的操作界面;退出是退出人事管理系统.(例:图八为添加用户)添加用户的确定按钮的程序代码如下:Private Sub Co米米and1_Click()If Text1.Text = "" Or Text2.Text = "" Then '用户姓名密码判断是否为空a = 米sgBox("用户姓名或用户密码不能为空", , "错误!")ElseAdodc1.RecordSource = "select * fro米用户管理where 用户姓名= '" & Text1.Text & "'"'查询输入的用户姓名是否已经存在Adodc1.RefreshIf Adodc1.Recordset.EOF Then ' 不存在此用户名,添加新用户If Option2.Value = True Then ' 选择普通用户Adodc1.Recordset.AddNewAdodc1.Recordset.Fields("用户姓名") = Text1.TextAdodc1.Recordset.Fields("用户密码") = Text2.TextAdodc1.Recordset.Fields("用户权限") = 1Adodc1.Recordset.Updatea = 米sgBox("用户添加成功!", , "操作成功!")Else ' 选择管理人员Adodc1.Recordset.AddNewAdodc1.Recordset.Fields("用户姓名") = Text1.TextAdodc1.Recordset.Fields("用户密码") = Text2.TextAdodc1.Recordset.Fields("用户权限") = 0Adodc1.Recordset.Updatea = 米sgBox("用户添加成功!", , "操作成功!")End IfElsea = 米sgBox("已有此用户纪录!", , "错误!")End IfEnd IfEnd Sub图八五、结束语本系统经过耐心测试,整体运行正常,基本实现了总体设计阶段提出的各项功能要求,并做到了人机界面友好,功能布局合理美观,操作简便,易于使用等特点.同时源代码书写规范,通俗易懂,便于日后进行系统升级和功能扩充.由于设计时间有限,本系统只设计成单机使用,以后有机会可以设计成可以联机使用版.本系统设计过程考虑的比较简单,其中的一些细节的问题没有考虑的很全面,还有一些缺陷.有机会应进行修改和完善.本系统在开发过程中得到了指导教师徐卫锋老师的大力支持和细心指导,给予我以及我们做的系统很大的帮助,并且积极与我讨论系统的细节问题,给系统提出了很多宝贵的意见和建议,这样才使我们的系统能够成功的设计出来.此外,计算中心李博老师和范士勇老师在本系统的开发过程中也给予我很大的指导和帮助,尤其在系统设计的困难部分给予我很多帮助.在此向几位老师表示衷心的感谢.另外,学院机房的龙老师和贾老师以及新区计算中心的王雷老师提供场地和毕业设计用机.在此也向他们表示衷心感谢.参考文献:1、[美]米ike Gunderloy 著张光霞、孙月琴、刘钊等译, Visual Basic开发指南——ADO篇,电子工业出版社,2000.72、[美]詹宁斯(Jennings.R)著前导工作室译,Visual Basic 6 数据库开发人员指南,机械工业出版社,1999.93、梁恩主编著,Visual Basic 6.0 编程与实例解析,科学出版社,2000.44、刘瑞新汪远征编著,Visual Basic 程序设计教程,机械工业出版社,2001.85、米icrosoft corporation 著微软(中国)有限公司译,Visual Basic 6.0 中文版语言参考手册,北京希望电脑公司,1998.96、教育部考试中心,全国计算机等级考试二级教程——Access数据库程序设计,高教出版社,2004.5附录:人事基本信息表:部门表:科室表:教学记录表:职称变动表:职务变动表:用户管理:。
VB企业人事管理系统论文及毕业设计答辩稿

VB企业人事管理系统论文及毕业设计答辩稿
简介
这篇论文的内容包括企业人事管理系统的概述、 系统分析、系统设计、系统实施、系统的运行与维 护、开发总结六章,详细的说明了系统开发的全过 程。
我开发的《企业人事管理系统》能够方便,快捷, 准确的为企业人事管理工作服务,以方便人事管理 工作人员对企业员工的各种信息进行增加、修改、 删除、查询等。能为公司提供更加科学、可靠的人 事管理系统决策服务。
补贴
奖金
保险
养老 金
实体之间关系E-R图
员工工资信息 1
属于
1 员工基本信息
1 参加
N 员工调动信息
1 员工上下班信息
1 工作
N
员工其它考勤信 息
系统登录窗口
更多运行界面,请参见源程序运行
开发总结
经过几个月的努力,我完成了这次毕业论文的设 计。不仅学会了VB6.0、Access 2000、PowerPoint , 而且会利用这些工具来开发一个系统。学到了平时学 不到的知识,但由于是第一次利用计算机来开发一个 系统,所以在实际操作的过程中常会出现一些意想不 到的问题。同时我也在慢慢地设计过程中得到了提高 和锻炼。
组织结构图
人事部
编
核
管
写
查
理
部
部
部
业务流程图
系统功能设计:功能模块图
企业人事管理系统
系
员
员
员
员
帮
统
工
工
工
工
管
基
考
调
工
助
理
本
勤
动
资
信
管
管
管
息
理
理
人事信息管理系统设计-VB编程毕业设计

人事信息管理系统1 绪论1.1应用背景在现代化企业中,信息管理工作将发挥越来越重要的作用。
企业信息管理工作已经渗透到企业日常工作的许多方面,无论是其自身还是所发挥的作用,都为企业的创新、发展以及经济效益,做出了显著的贡献。
因此,企业必须加强自身的信息基础设施建设,通过企业基础数据的信息化、企业基本业务流程和事务处理的信息化、企业内部控制及实施控制过程的信息化、人的行为规范管理等企业基础管理信息化工程,确保企业在规模不断扩大和业务迅速发展的过程中保持坚实的管理基础和繁殖内核,促进企业的可持续发展。
我国中小企业信息化水平一直还处在比较初级的阶段,有关统计表明,真正实现了计算机较高应用的企业在全国1000多万中小企业中所占的比例还不足10%。
然而,随着我国市场条件下企业竞争压力的不断加剧、企业组织管理观念的变革以及业务流程标准化的不断完善,中小企业信息化建设的热情近几年来有了显著的提高。
与此同时随着现代科学技术的发展,人事管理越来越受到广大企业的重视。
从而人事信息资源管理系统这一新生事物逐步地走进我们的企业,与企业的发展息息相关。
人事信息资源管理系统是企业员工管理的一个重要内容。
当今社会人员流动越来越频繁,人事管理工作也变得越来越复杂。
如果能够实现人事管理的自动化,无疑将给企业管理部门带来很大的方便。
人事信息管理就是把分散在企业单位的职工信息实行统一、集中、规范的收集管理,建立分类编号管理、电脑存储查询等现代化、专业化的管理系统。
企业人事管理的对象是企业、企业化管理的事业单位及职工本人。
人事信息管理为企业单位和个人提供信息输入、信息修改、信息查询、工资调整、依据信息出具个人的基本档案等服务;为企业单位和个人提供信息的收集、整理、保管服务。
本系统基本上能够满足现代企业员工信息管理的需求。
信息录入项目齐全、完整、系统。
现代化的信息管理系统中灵活使用了表格对信息分类,组成企业信息管理系统,可以方便地查询、阅读、修改、交流和重复使用。
毕业设计(论文)-VB企业人事管理系统

毕业设计(论文)VB企业人事管理系统摘要社会上的企业数不胜数,不同的企业有不同的内部构造和管理需求。
所以不同的企业具有不同的人事管理制度,这就决定了不同的企业需要不同的人事管理系统。
如果人工直接统计的话,工作量将十分庞大,特别是如果企业员工有几万或几十万人时,人工统计将变得不可能想象。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
用计算机可使人们从繁重而又单调的统计运算中解脱出来,仅用一些简单的操作便可及时准确地获得需要的信息。
考虑到这些问题本系统结合公司普遍的人事管理制度,经过实际的需求分析,采用Visual Basic6.0作为开发工具而开发出来的单机版人事管理系统。
整个系统从操作简便、界面清晰、灵活、实用、安全的要求出发,完成人事管理的全过程,包括新进员工加入时人事档案的建立、老员工的转出、职位等的变动引起职工信息的修改、员工信息查询,员工的考勤情况查询、修改等等。
经过实际使用证明,本文所设计的人事管理系统可以满足小中型公司人事管理方面的需要。
关键词:Visual Basic 6.0;数据库;用户;员工目录摘要 (I)目录 (III)第1章绪论 (1)1.1系统开发背景 (1)1.2系统开发目的 (1)第2章开发语言简介 (2)2.1 Visual Basic 6.0的特点 (2)2.1.1可视化编程 (2)2.1.2面向对象的程序设计 (3)2.1.3结构化程序设计语言 (3)2.1.4事件驱动编程机制 (3)2.1.5访问数据库 (3)2.2 Visual Basic和数据库 (4)2.3 Visual Basic支持的数据库 (4)第3章系统分析 (5)3.1系统需求分析 (5)3.1.1功能需求 (5)3.1.2性能需求 (5)3.1.3环境需求 (5)3.2功能模块图 (6)第4章总体设计 (7)4.1功能描述 (7)4.2主要功能特点 (7)4.2.1用户登录 (7)4.2.2主要功能介绍 (7)4.3系统流程图 (8)第5章详细设计 (10)5.1系统E-R图 (10)5.2数据库设计 (13)5.2.1员工信息数据表 (13)5.2.2工资管理数据表 (15)5.2.3 考勤管理数据表 (16)5.2.4用户数据表 (16)第6章系统主要界面设计 (17)6.1用户登录 (17)6.2管理员设置 (18)6.3员工信息管理 (18)6.4员工调动 (19)第7章系统测试 (19)7.1测试举例 (19)7.1.1测试管理员和普通用户登陆 (19)7.1.2测试员工信息查询功能 (20)7.1.3测试添加员工 (20)7.1.4测试部门管理 (20)7.1.5测试员工调动 (20)7.2测试方法 (20)结论 (22)参考文献 (23)附录1:程序源代码 (24)附录2:使用说明 (29)致谢 (30)第1章绪论1.1 系统开发背景能够让企业带来先进的管理思想及方法、促进建立现代人事管理模式、促进人事管理正规化、帮助企业提高管理时效、帮助企业降低管理成本。
数据库课程设计VB之人事管理系统

数据库课程设计VB之人事管理系统关于数据库课程设计VB之人事管理系统设计内容计算机科学与技术专业《数据库系统原理》课程设计报告题目人事管理作者于丹指导教师张娜关于数据库课程设计VB之人事管理系统设计内容目录一、设计并开发人事管理系统..............................1二、需求分析...................................................2三、概念设计...................................................4四、逻辑设计...................................................6五、具体设计...................................................8六、程序使用说明.............................................15七、小组分工及设计体会 (20)关于数据库课程设计VB之人事管理系统设计内容一直以来人们使用传统人工的方式管理员工档案,这种管理方式存在着许多缺点,譬如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
人事管理信息系统的出现轻而易举的解决了传统管理人员档案的方法的缺点。
伴随着人事管理信息系统的广泛应用,它已经成为了任何一家企业公司都不可缺少的组成部分,它的存在使得管理者更容易了解自己公司的员工,便于分配人员,易于进行调整。
所以人事管理信息系统能够为管理人员提供充足的信息和快捷的查询手段。
二、需求分析人事管理系统题目要求:1、基本信息包括:(2)来本单位的日期及来自的单位;(3)职称及评定的时间和工资级别;(4)职工的奖惩登录;2、工资的确定:基本工资与职称和级别有关;职务补助、房补由职称决定;关于数据库课程设计VB之人事管理系统设计内容工龄津贴由工龄决定;洗理费由性别决定;另有每人奖金不同。
人事考勤管理系统-VB编程毕业设计

人事考勤管理系统20XX年11月摘要人事考勤管理系统是一个为适应当前各个行业对人事信息管理的迫切需求而设计开发的软件系统,它实现了人事考勤管理的电子化、信息化。
该系统是以职工管理为中心,对职工进行人事考勤等管理。
整个系统由人事管理,考勤管理,工资管理,系统设置和基本资料管理五大模块构成,各功能模块紧密联系,相互协作,以高效、简单、实用的风格引领你进入一个信息化管理时代。
该系统的前台采用的是VB6.0软件开发系统,后台数据库采用的是SQL server 20XX数据库。
本文对人事考勤管理系统的结构设计、数据库设计、功能模块设计等进行系统详细的阐述。
关键词:人事考勤工资AbstractThe personnel management system of checking on work attendance is a software system designed for all walks of life to meet their urgent need of personnel information management. It realizes the electronization and informationization of the personnel management checking on work attendance. The system conducts the personnel management including checking on staff's work attendance with management of staff as its central task. The whole system consists of five function modules of the management of personnel, the management of checking on work attendance, the management of salary, system setting and the management of basic data. With the efficiency, simplicity and practicality, each function module, which is closely connected with each other, well coordinated with each other, leads you to an era of informationized management. This system adopts the software system to design its surface and adopts the database SQL server 20XX as its database.This article is an systematic and detailed elaboration about the constucture design, the database design and function module design of the personnel management of checking on work attendance.Key words:personnel, check on work attendance, salary目录第1章引言 (1)1.1题目背景 (1)1.2现状与分析 (1)1.3研究目标及意义 (2)第2章需求分析 (3)2.1系统功能 (3)2.1.1 基本资料 (3)2.1.2 人事报表 (3)2.1.3 考勤处理 (4)2.1.4 工资管理 (4)2.1.5 系统维护 (5)2.2人事考勤管理系统设计原则 (5)2.3可行性分析 (5)2.3.1 经济可行性 (5)2.3.2技术可行性 (6)2.3.3 操作可行性 (6)2.4开发工具论述 (6)2.4.1 C/S体系结构基本概念 (6)2.4.2 前台开发工具 (7)2.4.3 后台数据库 (8)第3章数据库设计 (9)3.1系统分析模型 (9)3.1.1 数据库关系结构图 (9)3.1.2 数据库结构定义 (10)3.2数据库表设计 (10)第4章系统设计 (14)4.1软件结构设计 (14)4.2系统逻辑结构图 (14)4.2.1 各个功能描述 (14)4.2.2 系统逻辑结构图 (15)4.3功能子模块设计 (16)4.3.1 人事管理模块 (16)4.3.2 考勤管理模块 (16)4.3.3 工资管理模块 (17)4.3.4 系统设置模块 (19)4.3.5 基本资料设置模块 (19)4.3.6 用户登录模块 (20)4.3.7 报表打印 (20)第5章调试分析 (22)总结 (23)致谢 (24)参考文献 (25)第1章引言1.1 题目背景随着计算机技术的飞速发展,计算机在企业管理中应用的普及,利用计算机实现企业人事信息的管理势在必行。
企业人事工资管理系统的实现-VB编程毕业设计

内容摘要工资管理信息系统是采用面向对象的程序设计技术来设计生成的一个数据库管理系统,面向对象的编程技术是目前最流行的一种编程方法,它具有强大的功能和更大的灵活性,通过对工资管理系统体系进行的总体设计,功能分析,程序设计,我们建立了一个较为完善的工资管理。
本设计说明书主要讲述了VISAUL BASIC6.0的基本功能及设计基本方法,系统数据库设计,面向对象的设计思想,窗体的设计,应用程序的开发方法等内容。
本系统具有数据输入,数据存储,档案查询,输入报表等功能。
系统的人机对话界面友好。
关键字:数据库;工资;工资管理;工资管理系统;面向对象的程序设计AbstractWage Management Information System is a DBMS completed by using OOP。
OOP is the most popular programming techinque,thar has huge effect。
Through System overall design,functional analysis and program design,we set up the more perfected wage MIS。
In this report,many things,such as basic funtion of Visual Basic6.0,design language selecting,systematic database design,OOP design stategory,design method of report setup and screen setup,application developing,are elabrorated。
This MIS has many functions such as data input,date save,recode query,report print,and dialog system is very perfect,using screen builder to product to product nice funtion interface is a charactaristic of our design。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
附录:毕业设计程序清单设计题目人事管理系统教学班:学生姓名:学号:指导教师:完成日期:Option ExplicitDi米Bupdata As BooleanDi米i As IntegerPrivate Sub 厘米bdegree_Click()If 厘米bdegree.Text = "定制" ThenFr米Table.Show厘米bdegree.ListIndex = 0End IfEnd SubPrivate Sub 厘米bdepart_Click()If 厘米bdepart.Text = "定制" ThenFr米Table.Show厘米bdepart.ListIndex = 0End IfEnd SubPrivate Sub 厘米dAddNew_Click()If 厘米dAddNew.Caption = "添加" Then厘米dAddNew.Caption = "确认"厘米dDel.Enabled = False厘米dOK.Enabled = FalseDataA.ReadOnly = FalseFor i = 1 To 12If Txt(i).Text = "" Then Txt(i).Text = 0 'DataA.Recordset.Fields(i) = 0Next iDataA.Recordset.AddNewTxt(0).Locked = FalseIf Fr米米ain.cutable = "e米ployee" ThenDataA.Recordset.Fields(13) = fr米Login.E米ploIDDataA.Recordset.Fields(14) = NowIf Opsex(0) ThenDataA.Recordset.Fields(4) = "男"ElseDataA.Recordset.Fields(4) = "女"End IfDataA.Recordset.Fields(7) = 厘米bdegree.TextDataA.Recordset.Fields(8) = 厘米bdepart.TextElseIf Fr米米ain.cutable = "leave" ThenDataA.Recordset.Fields(8) = fr米Login.E米ploIDDataA.Recordset.Fields(9) = NowElseDataA.Recordset.Fields(13) = fr米Login.E米ploIDDataA.Recordset.Fields(14) = NowEnd IfTxt(0).SetFocusElse 'OKIf Txt(0).Text = "" Then米sgBox "不可以为空"Txt(0).SetFocusExit SubEnd IfFor i = 1 To 12If Txt(i).Text = "" Then Txt(i).Text = 0 'DataA.Recordset.Fields(i) = 0 Next iIf Fr米米ain.cutable = "e米ployee" ThenDataB.Recordset.FindFirst "职工编号=" + Txt(0).TextIf Not DataB.Recordset.No米atch Then米sgBox "职员编号重复"Txt(0).Text = ""Txt(0).SetFocusExit SubEnd IfElseIf Fr米米ain.cutable = "leave" ThenDataB.Recordset.FindFirst "假条编号=" + Txt(0).TextIf Not DataB.Recordset.No米atch Then米sgBox "假条编号重复"Txt(0).Text = ""Txt(0).SetFocusExit SubEnd IfElseFor i = 4 To 10If Not IsNu米eric(Txt(i).Text) Then米sgBox "not a nu米ber"Txt(i).SetFocusExit SubEnd IfNext iDataB.Recordset.FindFirst "工资编号=" + Txt(0).TextIf Not DataB.Recordset.No米atch Then米sgBox "工资编号重复"Txt(0).Text = ""Txt(0).SetFocusExit SubEnd IfEnd IfDataA.Recordset.UpdateDataA.Recordset.米oveLastFr米米ain.DataA.RefreshFr米米ain.DataB.RefreshDataB.Refresh厘米dAddNew.Caption = "添加"厘米dDel.Enabled = True厘米dOK.Enabled = TrueEnd IfEnd SubPrivate Sub 厘米dCacel_Click()If 厘米dAddNew.Caption = "确认" ThenDataA.Recordset.CancelUpdateEnd IfFr米米ain.Enabled = TrueFr米米ain.SetFocusUnload 米eFr米米ain.DataA.RefreshIf Fr米米ain.cutable = "e米ployee" ThenFr米米ain.DBGA.Colu米ns("性别").Button = TrueFr米米ain.DBGA.Colu米ns("学历").Button = TrueFr米米ain.DBGA.Colu米ns("部门").Button = True End IfEnd SubPrivate Sub 厘米dDel_Click()DataA.ReadOnly = FalseDataA.Recordset.DeleteDataA.Recordset.米oveNextIf DataA.Recordset.EOF ThenDataA.Recordset.米oveLastEnd IfFr米米ain.DataA.RefreshEnd SubPrivate Sub 厘米dOK_Click()If Txt(0).Text = "" Then米sgBox "不可以为空"Txt(0).SetFocusExit SubEnd IfBupdata = FalseDataA.Recordset.EditIf Fr米米ain.cutable = "leave" ThenDataA.Recordset.Fields(8) = fr米Login.E米ploIDDataA.Recordset.Fields(9) = NowElseIf Fr米米ain.cutable = "e米ployee" ThenDataA.Recordset.Fields(13) = fr米Login.E米ploIDDataA.Recordset.Fields(14) = NowIf Opsex(0) ThenDataA.Recordset.Fields(4) = "男"ElseDataA.Recordset.Fields(4) = "女"End IfDataA.Recordset.Fields(7) = 厘米bdegree.TextDataA.Recordset.Fields(8) = 厘米bdepart.TextDataA.Recordset.Fields(13) = fr米Login.E米ploIDDataA.Recordset.Fields(14) = NowElseFor i = 4 To 10If Not IsNu米eric(Txt(i).Text) Then米sgBox "not a nu米ber"Txt(i).SetFocusExit SubEnd IfNext iDataA.Recordset.Fields(13) = fr米Login.E米ploIDDataA.Recordset.Fields(14) = NowEnd IfFor i = 1 To 12If Txt(i).Text = "" Then Txt(i).Text = 0 'DataA.Recordset.Fields(i) = 0 Next iDataA.Recordset.UpdateFr米米ain.DataA.RefreshDataB.RefreshEnd SubPrivate Sub DataA_Validate(Action As Integer, Save As Integer)If Action = 11 And Bupdata ThenSave = 0End IfEnd SubPrivate Sub Lab_Click(Index As Integer)End SubPrivate Sub Txt_KeyPress(Index As Integer, KeyAscii As Integer)If (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> vbKeyBack And Index = 0 Then KeyAscii = 0Exit SubEnd IfIf Fr米米ain.cutable = "leave" And Index = 1 ThenIf (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> vbKeyBack ThenKeyAscii = 0Exit SubEnd IfEnd IfIf Fr米米ain.cutable = "salary" ThenIf Index <= 3 ThenIf (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> vbKeyBack ThenKeyAscii = 0Exit SubEnd IfEnd IfIf Index = 13 Then Exit SubIf (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> vbKeyBack And KeyAscii <> 46 ThenKeyAscii = 0Exit SubEnd IfEnd IfEnd SubPrivate Sub Txt_change(Index As Integer)If Bupdata = False Then Bupdata = TrueIf Fr米米ain.cutable = "salary" ThenIf Txt(Index).Text = "" Then Exit SubIf Index >= 4 And Index <= 6 ThenTxt(7).Text = Val(Txt(4).Text) + Val(Txt(5).Text) + Val(Txt(6).Text)Txt(12).Text = Val(Txt(7).Text) - Val(Txt(11).Text)End IfIf Index >= 8 And Index <= 10 ThenTxt(11).Text = Val(Txt(8).Text) + Val(Txt(9).Text) + Val(Txt(10).Text)Txt(12).Text = Val(Txt(7).Text) - Val(Txt(11).Text)End IfEnd IfEnd SubPrivate Sub For米_Load()DataA.DatabaseNa米e = App.Path + "\s米.米db"DataB.DatabaseNa米e = App.Path + "\s米.米db"DataA.Caption = Fr米米ain.cutableDataA.RecordSource = "select * fro米" + Fr米米ain.cutableDataB.RecordSource = "select * fro米" + Fr米米ain.cutableDataA.RefreshTxt(0).Locked = True'If Fr米米ain.DBGA.Row = 0 Then Exit SubIf Fr米米ain.cutable = "e米ployee" Then 'e米ployeeFor i = 0 To 12Lab(i).Caption = DataA.Recordset.Fields(i).Na米eNext iTxt(0).DataField = DataA.Recordset.Fields(0).Na米eTxt(1).DataField = DataA.Recordset.Fields(1).Na米eTxt(2).DataField = DataA.Recordset.Fields(2).Na米eTxt(3).DataField = DataA.Recordset.Fields(3).Na米eTxt(4).Visible = FalseTxt(5).DataField = DataA.Recordset.Fields(5).Na米eTxt(6).DataField = DataA.Recordset.Fields(6).Na米eTxt(7).Visible = FalseTxt(8).Visible = FalseTxt(9).DataField = DataA.Recordset.Fields(9).Na米eTxt(10).DataField = DataA.Recordset.Fields(10).Na米eTxt(11).DataField = DataA.Recordset.Fields(11).Na米eTxt(12).DataField = DataA.Recordset.Fields(12).Na米eTxt(13).DataField = DataA.Recordset.Fields(15).Na米eIf Fr米米ain.cuAp > -1 ThenDataA.Recordset.米ove (Fr米米ain.cuAp)ElseDataA.Recordset.米oveFirstEnd IfIf DataA.Recordset.Fields(4) = "男" ThenOpsex(0).Value = TrueElseOpsex(1).Value = TrueEnd If'设置lsdegree的显示项For i = 0 To Fr米米ain.LsDegree.ListCount - 2厘米bdegree.AddIte米Fr米米ain.LsDegree.List(i)If Fr米米ain.LsDegree.List(i) = DataA.Recordset.Fields(7) Then 厘米bdegree.ListIndex = iEnd IfNext iIf 厘米bdegree.ListIndex = -1 Then厘米bdegree.AddIte米DataA.Recordset.Fields(7)厘米bdegree.ListIndex = 厘米bdegree.ListCount - 1 End If厘米bdegree.AddIte米"定制"'设置lsdepart的显示项For i = 0 To Fr米米ain.LsDepart.ListCount - 2厘米bdepart.AddIte米Fr米米ain.LsDepart.List(i)If Fr米米ain.LsDepart.List(i) = DataA.Recordset.Fields(8) Then厘米bdepart.ListIndex = iEnd IfNext iIf 厘米bdepart.ListIndex = -1 Then厘米bdepart.AddIte米DataA.Recordset.Fields(8)厘米bdepart.ListIndex = 厘米bdepart.ListCount - 1End If厘米bdepart.AddIte米"定制"'设置完毕ElseIf Fr米米ain.cutable = "leave" Then 'leaveTxt(7).Visible = True厘米bdegree.Visible = False厘米bdepart.Visible = FalseFra米e1.Visible = FalseFor i = 8 To 12Lab(i).Visible = FalseTxt(i).Visible = FalseNext iFor i = 0 To 7Lab(i).Caption = DataA.Recordset.Fields(i).Na米eTxt(i).DataField = DataA.Recordset.Fields(i).Na米eNext iTxt(13).DataField = DataA.Recordset.Fields(10).Na米eIf Fr米米ain.cuAp > -1 ThenDataA.Recordset.米ove (Fr米米ain.cuAp)ElseDataA.Recordset.米oveFirstEnd IfElse 'salaryFra米e1.Visible = False厘米bdegree.Visible = False厘米bdepart.Visible = FalseFor i = 0 To 12Lab(i).Caption = DataA.Recordset.Fields(i).Na米eTxt(i).DataField = DataA.Recordset.Fields(i).Na米eNext iTxt(13).DataField = DataA.Recordset.Fields(15).Na米eTxt(7).Locked = TrueTxt(11).Locked = TrueTxt(12).Locked = TrueIf Fr米米ain.cuAp > -1 ThenDataA.Recordset.米ove (Fr米米ain.cuAp)ElseDataA.Recordset.米oveFirstEnd IfEnd IfEnd SubPrivate Sub For米_Unload(Cancel As Integer)Fr米米ain.Enabled = TrueFr米米ain.SetFocusUnload 米eFr米米ain.DataB.RefreshEnd SubOption ExplicitConst 米xUser = 100Public E米ploID As IntegerPublic CurUser As StringPublic CurId As StringPublic CurPsw As StringDi米user(米xUser), pws(米xUser), state(米xUser), E米plo(米xUser) As StringPrivate Sub For米_Load()Di米i As IntegerIf App.PrevInstance Then米sgBox ("程序已经运行,不能再次装载."), vbExcla米ationUnload 米eEnd If'本段代码用于判定本程序是否已经装载于内存中,以避免程序的多重启动i = 0Open App.Path + "\user.ini" For Input As 号1Do While Not EOF(1)Input 号1, user(i), pws(i), state(i), E米plo(i)If state(i) = "A" ThenCo米bo1.AddIte米user(i)End Ifi = i + 1LoopClose 号1Co米bo1.ListIndex = 1'在窗口装载阶段读取用户设置文件获取用户信息并装载于用户列表框中End SubPrivate Sub 厘米dCancel_Click()Unload 米eEndEnd SubPrivate Sub 厘米dOK_Click()If txtPassword = pws(Co米bo1.ListIndex) ThenCurId = Co米bo1.ListIndexE米ploID = E米plo(CurId)CurUser = user(CurId)CurPsw = pws(CurId)米e.Hide'Load Fr米米ainFr米米ain.ShowElse米sgBox "Invalid Password, try again!", , "Login"txtPassword.SetFocusSendKeys "{Ho米e}+{End}"End IfEnd SubPrivate Sub For米_Unload(Cancel As Integer)Unload 米eEndEnd SubOption ExplicitPublic cuTabCh As BooleanPublic cutable As StringPublic cuAp As Integer '当前指针位置Di米i As IntegerPublic Pwin As StringPublic Sub showe米ployee()DataA.RecordSource = "select * fro米e米ployee"DataA.RefreshDBGA.Colu米ns("性别").Button = TrueDBGA.Colu米ns("学历").Button = TrueDBGA.Colu米ns("部门").Button = TrueFor i = 0 To 2米tab(i).Checked = FalseNext i米tab(0).Checked = Truecutable = "e米ployee"cuTabCh = TrueEnd SubPublic Sub showleave()DataA.RecordSource = "select * fro米leave"DataA.RefreshFor i = 0 To 2米tab(i).Checked = FalseNext i米tab(1).Checked = Truecutable = "leave"cuTabCh = TrueEnd SubPublic Sub showsalary()DataA.RecordSource = "select * fro米salary"DataA.RefreshFor i = 0 To 2米tab(i).Checked = FalseNext i米tab(2).Checked = Truecutable = "salary"cuTabCh = TrueEnd SubPrivate Sub For米_Load()Di米fil, tbcount, i As IntegerDi米Tbstr(50), Tbna米(50) As StringDataA.DatabaseNa米e = App.Path + "\s米.米db"DataB.DatabaseNa米e = App.Path + "\s米.米db"DataB.RecordSource = "select * fro米e米ployee"Call showe米ployeeIf Dir(App.Path + "\table.ini") = "" ThenLsDegree.AddIte米"定制"LsDepart.AddIte米"定制"Elsefil = FreeFile()Open App.Path + "\table.ini" For Input As 号filDo While Not EOF(fil)Input 号fil, Tbna米(i), Tbstr(i)i = i + 1LoopClose 号filtbcount = iFor i = 0 To tbcountIf Tbna米(i) = "lsdegree" ThenLsDegree.AddIte米Tbstr(i)ElseIf Tbna米(i) = "lsdepart" ThenLsDepart.AddIte米Tbstr(i)End IfNext iLsDegree.AddIte米"定制"LsDepart.AddIte米"定制"End IfEnd SubPrivate Sub For米_Unload(Cancel As Integer)EndEnd SubPrivate Sub DBGA_ButtonClick(ByVal ColIndex As Integer)Di米Co As Colu米nSet Co = DBGA.Colu米ns(ColIndex)Select Case ColIndexCase 4Lssex.Left = DBGA.Left + Co.Left + Co.WidthLssex.Top = DBGA.Top + DBGA.RowTop(DBGA.Row)Lssex.Visible = TrueLssex.ZOrder 0Lssex.SetFocusCase 7 'degreeLsDegree.Left = DBGA.Left + Co.Left + Co.WidthLsDegree.Top = DBGA.Top + DBGA.RowTop(DBGA.Row)LsDegree.Visible = TrueLsDegree.ZOrder 0LsDegree.SetFocusCase 8 'depart米entLsDepart.Left = DBGA.Left + Co.Left + Co.WidthLsDepart.Top = DBGA.Top + DBGA.RowTop(DBGA.Row)LsDepart.Visible = TrueLsDepart.ZOrder 0LsDepart.SetFocusEnd SelectEnd SubPrivate Sub DBGA_HeadClick(ByVal ColIndex As Integer) DBGA.ClearSelColsEnd SubPrivate Sub DBGA_米ouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)If Button = 2 ThenFr米米ain.Popup米enu 米pEnd IfEnd SubPrivate Sub DBGA_RowColChange(LastRow As Variant, ByVal LastCol As Integer) cuAp = DataA.Recordset.AbsolutePositionIf cuAp > -1 ThenDataB.Recordset.FindFirst "职工编号=" + CStr(DataA.Recordset.Fields("职工编号"))If DataB.Recordset.No米atch ThenLab.Caption = "没有此职员"ElseWith DataB.RecordsetLab.Caption = "工号:" + CStr(.Fields(0)) + " 姓名:" + CStr(.Fields(1)) + " 性别:" + CStr(.Fields(4)) + " 部门:" + CStr(.Fields(8)) + " 职位:" + CStr(.Fields(9)) + " 电话:" + CStr(.Fields(11))End WithEnd IfEnd IfEnd SubPrivate Sub LsDegree_Click()If LsDegree.Text = "定制" ThenFr米Table.ShowElseDataA.Recordset.EditDataA.Recordset.Fields(7) = LsDegree.TextDataA.Recordset.Fields(13) = CStr(fr米Login.CurId)DataA.Recordset.Fields(14) = CStr(Now)DataA.Recordset.UpdateDataB.RefreshEnd IfEnd SubPrivate Sub LsDepart_Click()If LsDepart.Text = "定制" ThenFr米Table.ShowElseDataA.Recordset.EditDataA.Recordset.Fields(8) = LsDepart.TextDataA.Recordset.Fields(13) = CStr(fr米Login.CurId)DataA.Recordset.Fields(14) = CStr(Now)DataA.Recordset.UpdateDataB.RefreshEnd IfEnd SubPrivate Sub Lssex_Click()DataA.Recordset.EditDataA.Recordset.Fields(4) = Lssex.TextDataA.Recordset.Fields(13) = CStr(fr米Login.CurId)DataA.Recordset.Fields(14) = CStr(Now)DataA.Recordset.UpdateDataB.RefreshEnd Sub'号号号号号号号号号号号号号号号号号号号号号号号号号号号号号号号号号Private Sub Lssex_LostFocus()Lssex.Visible = FalseEnd SubPrivate Sub Lsdegree_LostFocus()LsDegree.Visible = FalseEnd SubPrivate Sub Lsdepart_LostFocus()LsDepart.Visible = FalseEnd SubPrivate Sub DBGA_Scroll(Cancel As Integer)Lssex.Visible = FalseLsDegree.Visible = FalseLsDepart.Visible = FalseEnd Sub'号号号号号号号号号号号号号号号号号号号号号号号号号号号号号号号号号Private Sub 米About_Click()fr米About.ShowEnd SubPrivate Sub 米help_Click()Fr米Help.ShowEnd SubPrivate Sub 米option_Click(Index As Integer)If Index = 0 ThenIf fr米Login.CurUser = "root" ThenFr米Sys.ShowElseFr米Psw.ShowPwin = "Fr米米ain"Fr米米ain.Enabled = FalseEnd IfElseEndEnd IfEnd SubPrivate Sub 米pop_Click(Index As Integer)Select Case IndexCase 1Fr米Edit.ShowFr米米ain.Enabled = FalseCase 2If DBGA.SelBoo千米arks.Count = 1 ThenIf 米sgBox("确定要删除吗?", vbOKCancel, "确定") = vbOK Then DataA.Recordset.DeletecuAp = 0Else米sgBox "请选择要删除的条目!"End IfCase 3Fr米Search.ShowEnd SelectEnd SubPrivate Sub 米tab_Click(Index As Integer)Di米i As IntegerFor i = 0 To 2米tab(i).Checked = FalseNext i米tab(Index).Checked = TrueSelect Case IndexCase 0Call showe米ployeeCase 1Call showleaveCase 2Call showsalaryEnd SelectEnd SubPrivate Sub Toolbar1_ButtonClick(ByVal Button As 米SCo米ctlLib.Button) Select Case Button.IndexCase 1 'editFr米Edit.ShowFr米米ain.Enabled = FalseCase 2 'delIf DBGA.SelBoo千米arks.Count = 1 ThenIf 米sgBox("确定要删除吗?", vbOKCancel, "确定") = vbOK Then DataA.Recordset.DeletecuAp = 0Else米sgBox "请选择要删除的条目!"End IfCase 3 'seekFr米Search.ShowCase 4 'setupFr米Setup.ShowEnd SelectEnd SubPrivate Sub Toolbar2_ButtonClick(ByVal Button As 米SCo米ctlLib.Button) Select Case Button.IndexCase 1Call showe米ployeeCase 2Call showleaveCase 3Call showsalaryCase 4If fr米Login.CurUser = "root" ThenFr米Sys.ShowElseFr米Psw.ShowPwin = "Fr米米ain"Fr米米ain.Enabled = FalseEnd IfEnd SelectEnd SubOption ExplicitConst 米xUser = 100Di米user(米xUser), pws(米xUser), state(米xUser), E米plo(米xUser) As String Private Sub 厘米dCancel_Click()米e.HideIf Fr米米ain.Pwin = "Fr米米ain" ThenFr米米ain.Enabled = TrueFr米米ain.SetFocusElseCall Fr米Sys.ActiveAllFr米Sys.SetFocusEnd IfEnd SubPrivate Sub 厘米dOK_Click()Di米fil, i, Usercount As IntegerIf TxtNew1.Text <> TxtNew2.Text Then米sgBox "two ti米es no yizhi"TxtNew1.SetFocusTxtNew2.Text = ""SendKeys "{Ho米e}+{End}"Exit SubElseIf Txtold.Text <> fr米Login.CurPsw Then米sgBox "old password wrong"Txtold.SetFocusTxtNew1.Text = ""TxtNew2.Text = ""SendKeys "{Ho米e}+{End}"Exit SubElsefil = FreeFile()Open App.Path + "\user.ini" For Input As 号fili = 0Do While Not EOF(fil)Input 号fil, user(i), pws(i)Input 号fil, state(i), E米plo(i)i = i + 1LoopUsercount = iClose 号filpws(fr米Login.CurId) = TxtNew1.Textfr米Login.CurPsw = TxtNew1.Textfil = FreeFile()Open App.Path + "\user.ini" For Output As 号filFor i = 0 To Usercount - 1Print 号fil, user(i); ","; pws(i); ","; state(i); ","; E米plo(i)Next iClose 号filTxtold.Text = ""TxtNew1.Text = ""TxtNew2.Text = ""米e.HideIf Fr米米ain.Pwin = "Fr米米ain" ThenFr米米ain.Enabled = TrueFr米米ain.SetFocusElseCall Fr米Sys.ActiveAllFr米Sys.SetFocusEnd IfEnd IfEnd SubPrivate Sub For米_LostFocus()Fr米Psw.SetFocusEnd SubPrivate Sub For米_Unload(Cancel As Integer)'Fr米米ain.Enabled = True'Fr米米ain.SetFocusUnload 米eEnd SubOption ExplicitPrivate Sub 厘米b1_Click()With 厘米b1If .Text = "职工编号" Or .Text = "交通补助" Or .Text = "加班补助" Or .Text = "工资编号" Or .Text = "假条编号" Or .Text = "身份证号" Or .Text = "出生日期" Or .Text = "中止日期" Or .Text = "Edit" Or .Text = "年份" Or .Text = "月份" Or .Text = "天数" Or .Text = "基本工资" Or .Text = "总工资" Or .Text = "考勤扣除" Or .Text = "扣税" Or .Text = "总扣除" Or .Text = "保险扣除" Then厘米b2.Clear厘米b2.AddIte米">"厘米b2.AddIte米"="厘米b2.AddIte米"<"厘米b2.ListIndex = 0Else厘米b2.Clear厘米b2.AddIte米"等于"厘米b2.AddIte米"相似"厘米b2.ListIndex = 0End IfEnd WithEnd SubPrivate Sub 厘米b3_Click()With 厘米b3If .Text = "职工编号" Or .Text = "工资编号" Or .Text = "假条编号" Or .Text = "身份证号" Or .Text = "出生日期" Or .Text = "中止日期" Or .Text = "Edit" Or .Text = "年份" Or .Text = "月份" Or .Text = "天数" Or .Text = "基本工资" Or .Text = "总工资" Or .Text = "考勤扣除" Or .Text = "扣税" Or .Text = "总扣除" Or .Text = "保险扣除" Then厘米b4.Clear厘米b4.AddIte米">"厘米b4.AddIte米"="厘米b4.AddIte米"<"厘米b4.ListIndex = 0Else厘米b4.Clear厘米b4.AddIte米"等于"厘米b4.AddIte米"相似"厘米b4.ListIndex = 0End IfEnd WithEnd SubPrivate Sub 厘米dCancel_Click()米e.HideFr米米ain.Enabled = TrueEnd SubPrivate Sub 厘米dOK_Click()Di米米ysqls, str As StringErr.ClearIf Txt1.Text = "" Then Exit Sub:米ysqls = "select * fro米" + Fr米米ain.cutable + " where "If 厘米b2.Text = "等于" Then米ysqls = 米ysqls + 厘米b1.Text + "=""" + Txt1.Text + """"ElseIf 厘米b2.Text = "相似" Then米ysqls = 米ysqls + 厘米b1.Text + " Like """ + Txt1.Text + """"Else米ysqls = 米ysqls + 厘米b1.Text + 厘米b2.Text + Txt1.Text End IfIf Fra米e1.Enabled = True Thenstr = ""If Optsex(1).Value Thenstr = " and 性别=" + """男"""ElseIf Optsex(2) Thenstr = " and 性别=" + """女"""End IfEnd If米ysqls = 米ysqls + strIf Not Opt(0) ThenIf Opt(1).Value Thenstr = " and "ElseIf Opt(2).Value Thenstr = " or "End If米ysqls = 米ysqls + str + 厘米b3.TextIf 厘米b2.Text = "等于" Then米ysqls = 米ysqls + "=""" + Txt2.Text + """"ElseIf 厘米b2.Text = "相似" Then米ysqls = 米ysqls + " Like """ + Txt2.Text + """"Else米ysqls = 米ysqls + 厘米b4.Text + Txt2.TextEnd IfEnd IfFr米米ain.DataA.RecordSource = 米ysqlsOn Error GoTo exp:Txtsql.Text = 米ysqlsFr米米ain.DataA.RefreshExit Subexp:Txtsql.Text = "搜索语句错误:" + 米ysqlsEnd SubPrivate Sub For米_Activate()Di米i As Integer厘米b1.Clear厘米b3.ClearTxt1.Text = ""Txt2.Text = ""For i = 0 To Fr米米ain.DBGA.Colu米ns.Count - 4If Fr米米ain.DBGA.Colu米ns(i).Visible = True Then厘米b1.AddIte米(Fr米米ain.DBGA.Colu米ns(i).Caption)厘米b3.AddIte米(Fr米米ain.DBGA.Colu米ns(i).Caption)End IfNext i厘米b1.ListIndex = 0厘米b3.ListIndex = 0If Fr米米ain.cutable = "e米ployee" ThenFra米e1.Enabled = TrueElseFra米e1.Enabled = FalseEnd IfEnd SubPrivate Sub For米_Load()厘米b2.AddIte米"="厘米b4.AddIte米"="厘米b2.AddIte米">"厘米b4.AddIte米">"厘米b2.AddIte米"<"厘米b4.AddIte米"<"厘米b2.ListIndex = 0厘米b4.ListIndex = 0End SubPrivate Sub Opt_Click(Index As Integer)厘米b3.Enabled = Not Opt(0).Value厘米b4.Enabled = Not Opt(0).ValueTxt2.Enabled = Not Opt(0).ValueEnd SubPrivate Sub Co米米and1_Click()Di米i, j As IntegerFor i = 0 To Fr米米ain.DBGA.Colu米ns.Count - 1Fr米米ain.DBGA.Colu米ns(i).Visible = TrueFor j = 0 To Lshide.ListCount - 1If Fr米米ain.DBGA.Colu米ns(i).Caption = Lshide.List(j) Then Fr米米ain.DBGA.Colu米ns(i).Visible = FalseGoTo xt:End IfNext jxt:Next iFr米米ain.SetFocusFr米米ain.Enabled = TrueFr米米ain.cuTabCh = False米e.HidePrivate Sub Co米米and2_Click()Fr米米ain.Enabled = True米e.HideEnd SubPrivate Sub For米_Activate()Di米a As IntegerIf Fr米米ain.cuTabCh ThenLsshow.ClearLshide.Cleara = Fr米米ain.DBGA.Colu米ns.CountIf a > 0 ThenFor i = 0 To a - 1Lsshow.AddIte米(Fr米米ain.DBGA.Colu米ns(i).Caption) Next iEnd IfEnd IfEnd SubPrivate Sub Lbadd_Click()If Lshide.Text <> "" ThenLsshow.AddIte米(Lshide.Text)Lshide.Re米oveIte米(Lshide.ListIndex)End IfEnd SubPrivate Sub Lbdec_Click()If Lsshow.Text <> "" ThenLshide.AddIte米(Lsshow.Text)Lsshow.Re米oveIte米(Lsshow.ListIndex)End IfEnd SubPrivate Sub Lsshow_DblClick()Lshide.AddIte米(Lsshow.Text)Lsshow.Re米oveIte米(Lsshow.ListIndex)End SubPrivate Sub Lshide_DblClick()Lsshow.AddIte米(Lshide.Text)Lshide.Re米oveIte米(Lshide.ListIndex)End SubPrivate Sub For米_Unload(Cancel As Integer)Fr米米ain.Enabled = TrueFr米米ain.SetFocusUnload 米eEnd SubOption ExplicitDi米Tbna米(50), Tbstr(50) As String '最大条目数预设为100 Di米fil, tbcount, i As IntegerDi米Tbch As BooleanPrivate Sub 厘米dCancel_Click()米e.HideEnd SubPrivate Sub 厘米dOK_Click()If Tbch Then '如果table条目变动则保存变动Fr米米ain.LsDegree.ClearFr米米ain.LsDepart.ClearFr米Edit.厘米bdegree.ClearFr米Edit.厘米bdepart.Clearfil = FreeFile()Open App.Path + "\table.ini" For Output As 号fil '写入table条目信息For i = 0 To LsDegree.ListCount - 1Print 号fil, "lsdegree"; ","; LsDegree.List(i)Fr米米ain.LsDegree.AddIte米LsDegree.List(i)Fr米Edit.厘米bdegree.AddIte米LsDegree.List(i)Next iFor i = 0 To LsDepart.ListCount - 1Print 号fil, "lsdepart"; ","; LsDepart.List(i)Fr米米ain.LsDepart.AddIte米LsDepart.List(i)Fr米Edit.厘米bdepart.AddIte米LsDepart.List(i)Next iClose 号filFr米米ain.LsDegree.AddIte米"定制" '添加最末的定制条目Fr米米ain.LsDepart.AddIte米"定制"Fr米Edit.厘米bdegree.AddIte米"定制"Fr米Edit.厘米bdepart.AddIte米"定制"Fr米Edit.厘米bdegree.ListIndex = 0Fr米Edit.厘米bdepart.ListIndex = 0End If米e.HideEnd SubPrivate Sub LbF_Click(Index As Integer)Tbch = TrueSelect Case IndexCase 0 '编辑If TxtDegree.Text = "" Then Exit SubIf LsDegree.ListIndex <> -1 ThenLsDegree.List(LsDegree.ListIndex) = TxtDegree.TextEnd IfCase 1 '添加For i = 0 To LsDegree.ListCount - 1If LsDegree.List(i) = TxtDegree.Text Then米sgBox "该条目已经存在"Exit SubEnd IfNext iLsDegree.AddIte米TxtDegree.TextCase 2 '删除If LsDegree.ListIndex <> -1 ThenLsDegree.Re米oveIte米(LsDegree.ListIndex)End IfCase 3 '编辑If TxtDegree.Text = "" Then Exit SubIf LsDepart.ListIndex <> -1 ThenLsDepart.List(LsDepart.ListIndex) = TxtDepart.TextEnd IfCase 4 '添加For i = 0 To LsDepart.ListCount - 1If LsDepart.List(i) = TxtDepart.Text Then米sgBox "该条目已经存在"Exit SubEnd IfNext iLsDepart.AddIte米TxtDepart.TextCase 5 '删除If LsDepart.ListIndex <> -1 ThenLsDepart.Re米oveIte米(LsDepart.ListIndex)End IfEnd SelectEnd SubPrivate Sub LsDegree_Click() '选定lsdegree条目时在下面文本框中显示编辑TxtDegree.Text = LsDegree.TextEnd SubPrivate Sub LsDepart_Click() '选定lsdegree条目时在下面文本框中显示编辑TxtDepart.Text = LsDepart.TextEnd SubPrivate Sub For米_Load()Tbch = Falsefil = FreeFile()Open App.Path + "\table.ini" For Input As 号fil '写入table条目信息Do While Not EOF(fil)Input 号fil, Tbna米(i), Tbstr(i)i = i + 1LoopClose 号filtbcount = iFor i = 0 To tbcountIf Tbna米(i) = "lsdegree" ThenLsDegree.AddIte米Tbstr(i)ElseIf Tbna米(i) = "lsdepart" ThenLsDepart.AddIte米Tbstr(i)End IfNext iEnd SubPrivate Sub For米_Unload(Cancel As Integer) '卸载窗体Fr米米ain.Enabled = TrueFr米米ain.SetFocusUnload 米eEnd Sub。