1、目录第1章概述21.1引言31.2开发背景及意义31.3相关技术介绍3第2章系统需求分析52.1可行性分析52.2 功能需求6第3章总体设计73.1系统目标设计73.2 系统功能模块设计73.3数据库设计8第4章 详细设计134.1登陆窗体设计134.2 系统主菜单窗体设计和退出窗体设计154.3职员信息窗体设计184.4出差记录窗体设计21214.5工作时间窗体设计22第5章 总结与体会24参考资料.25第1章概述1.1 引言我国中小企业信息化水平一直处在比较初级的阶段,有关统计表明,真正具备计算机信息化比较高应用水平的企业在全国1000多万中小企业中所占的比例还不足10%。然而,随着我国市
2、场经济的不断成熟,企业的竞争也在不断的加剧,同时企业组织管理观念的变革以及业务流程标准化也在不断完善,中小企业信息化建设的热情近几年来有了显著的提高。因此开发一个高质量的考勤工资系统进行企业管理尤为重要。 伴随着计算机技术在各行各业日益广泛和深入的应用,企业对员工的考勤管理不在像过去一样靠手工去做,在一些稍具规模的企事业单位内考勤也开始信息化。考勤规则的灵活定义,提供和多种考勤机的接口,并可以手工录入考勤记录。本系统就是为了适应这种要求而设计的。集信息的显示、输入、修改、删除、查询等各种处理为一体,信息维护起来非常方便。大大减少了公司的人力和物力,为公司的考勤以及工资的发放带来很大的便利。1.
3、2 开发背景及意义当今社会,计算机已经十分普及,性能也日趋完善。它已经被应用于许多领域。比如说,小到图书馆的图书管理,超市或网吧的收费管理,KTV的点歌系统,大到航空、铁路的售票,全国人口户籍的管理等等。随着现代科技的进步,用计算机来进行考勤的管理也成为现代化企业运作必不可少的一部分。在过去我们的考勤工作都是人工完成的,不仅浪费了很多的人力跟物力,而且无法保证其准确性和透明度,给企业的管理带来了许多的不便。现在利用计算机来管理我们的考勤工作,大大降低了工作人员的工作量,提高了工作效率,使原本复杂和枯燥无味的工作变得简单而轻松了,而且也实用、安全。计算机技术特别是数据库技术的发展为企业建立管理信
4、息系统,甚至对改变管理思想起着不可估量的作用。实践证明信息技术已在企业的管理层面扮演越来越重要的角色。通过考勤系统我们能很容易地对公司员工的信息有一个基本的了解,可以很方便地知道员工的出勤情况,通过对员工出勤信息的了解,就能计算出员工的实际工资。一切的统计和计算都由计算机代为管理了,考勤信息管理系统对企业的合理化管理起到了很大的作用,它为企业信息化的建设打响了头炮,而企业的信息化建设已成为现代各个企业发展的需要。所以说,考勤管理系统的开发具有非常重要的意义。1.3 相关技术介绍Microsoft Access 2003是一种关系型数据库管理系统 (RDBMS)。Access数据库是Micros
5、oft Office 2000套件的Professional版和Developer版的一个组件,不需要单独安装。 与其他关系型数据库一样,MS Access充当“后端”,它的任务是存储数据。除此之外,通过使用MS Access,用户还可以创建“前端”或一种对用户友好的、颇受欢迎的数据访问方式。Access数据库由七个对象组成:表、查询、窗体、报表、页、宏以及模块。数据库中的数据主要存储在“表”中;“查询”帮助用户检索基于某些条件的特定数据;“窗体”帮助用户创建用于输入、修改和操纵数据的用户界面;“报表”以某种格式显示一个或多个表中的数据,数据可以直接从表中提取,也可以是字段经过某些计算的结果,
6、报表还提供良好的打印效果;“宏”和“模块”有用来计算、在应用程序中导航以及打印报表等操作;“页”有提供给浏览器Web页的形式查看数据库中的数据。而且它可以在单一的数据库文件中管理所有的信息。在这个文件中,用户可以将自己的数据分别保存在各自独立的存储空间中,这些空间称作表;可以使用联机窗体来查看、添加及更新表中的数据;使用查询来查找并检索所要的数据;也可以使用报表以特定的版面布置来分析及打印数据。 如果要保存数据,可以为每一种类型的信息创建一个表。定义好各个表之间的关系,就可以实现将查询、窗体或报表中的多个表中数据合并在一起。如果要搜索并检索符合指定条件的数据,包括来自多个表中的数据,就要创建查
7、询。查询的同时也可以更新或删除多条记录,并对数据执行内嵌或自定义的计算。如果要简单地直接在某个表中查看、输入及更改数据,创建一个窗体。在打开一个窗体时,MicrosoftAccess2000将从一个或多个表中检索数据,并使用用户在“窗体向导”选择的版面布局或所创建的版面布局,将窗体显示在屏幕上。如果要分析数据或将数据以特定的方式打印出来,创建一个报表等等。第2章系统需求分析2.1可行性分析2.1.1技术可行性根据新系统目标来衡量所需的技术是否具备,一般可从硬件、软件的性能要求、环境条件、技术人员水平和数量等方面去考虑和分析,其中开发人员的技术力量应首先考虑能力与水平,并考虑近期内可以培养和发展
8、的技术人员。2.1.2经济可行性估算新系统的开发费用和今后的运行、维护费用,估计新系统将获得的效益,并将费用与效益进行比较,看是否有利。开发、运行和维护费用:主要包括购买和安装设备的费用:计算机硬件、系统软件、机房、电源、空调等;软件开发费用:若由本单位的技术人员开发,则该项费用可以计入下面的人员费用一项;(1)人员费用:系统开发人员、操作人员和维护人员的工资、培训费用等;由于本项目的特殊性该部分费用可节省。消耗品费用:系统开发所用材料、系统正常运行所用消耗品,例如电费、印纸、盘、开发软件等开支;(2)其它费用:系统的效益可以从经济效益和社会效益两方面考虑。对于公司员工出勤管理系统则应着重分析
9、其经济效益。例如,系统投入运行后可以提供哪些以前无法及时提供的信息,用户查询和使用信息的方便程度提高多少、速度增加了多少,对于管理人员进行决策提供了多少帮助等等,同时可以减少管理人员,从而节省了大量的工资开出。2.1.3 运行可行性对新系统运行后给现行系统带来的影响(包括组织机构、管理方式、工作环境等)和后果进行估计和评价。同时还应考虑现有管理人员的培训、补充,分析在给定时间里能否完成预定的系统开发任务等。按上述三方面进行可行性分析、研究后,我们认为该项目是可行的。2.2 功能需求 该系统主要分为五大功能:系统管理、新增、修改、查询和系统维护。 员工信息管理功能模块包括新增员工的信息,修改员工
10、信息,查询员工信息。该功能模块是对系统的初始化,对员工有基本信息进行管理和维护。考虑到单位人较多,设置了员工基本信息查询,操作人员可以按员工编号、姓名和部门进行查询,并对查询结果进行维护,从面减少了操作人员的工作强度。该模块的主要功能是对该单位的员工的基本信息进行管理,并能够对员工的基本信息进行查询,便于修改和删除。第3章总体设计3.1系统目标设计本系统是实现对员工上下班时间的设定,员工出入单位情况的记录,请假、加班、出差情况的记录,还有每个月底进行整个月出勤情况的统计。考勤系统记录了员工上下班的情况,为工资管理直接提供每个月工作时间的统计结果,用以计算工资。同时考勤系统也需要其他系统提供的员
11、工、部门信息。3.2 系统功能模块设计员工考勤管理系统模块主要包括考勤管理、基本信息和考勤统计3个功能模块。(1)基本信息:用于完成对员工基本信息资料的管理,包括对员工信息的添加,修改,删除等基本操作。或者用于查看员工的基本信息。还有工作时间的修改和默认。(2)考勤统计:用于完成对员工的的各种信息的统计。统计出差时间,加班时间,缺勤时间和次数等。(3)考勤管理:对员工考勤信息的进行记录和查询。出差,出勤,加班,缺勤情况是该功能的子功能,主要用于对员工的日常考勤的记录管理。考勤管理系统考勤管理基本信息考勤统计请假记录出勤记录出差记录工作时间职工信息职员考勤统计搜索考勤记录加班记录图3-1 系统功
12、能模块3.3数据库设计3.3.1 数据库需求分析出勤记录:出勤记录编号、职工编号、出勤状况、出勤日期、出勤时间。请假记录:请假记录编号、职员编号、开始日期、结束日期、假期类别、请假原因。加班记录:加班记录编号、职员编号、加班日期、加班时间、加班说明。出差记录:出差记录编号、职员编号、开始时间、结束时间、附加说明。考勤统计:考勤记录编号、职员编号、公休天数、事假天数、病假天数、加班天数、迟到次数、早退次数、记录日期。所需的外部数据支持:职工信息:职员编号、职位、性别、姓名、邮政编码、职员相片等。公司部门:部门编号、部门名称等。Password:uname、upass、管理员编号、部门编号。工作时
13、间:上午上班时间、上午下班时间、下午上班时间、下午下班时间。3.3.2 数据库结构设计根据上面的需求分析,总共需要9个工作表的数据支持:出勤记录表、请假记录表、加班记录表、出差记录表、考勤统计表、工作时间表、password表、职工信息表和公司部门表。这9个表的结构如图所示。 表3-1工作时间表字段名称数据类型字段大小是否为必读字段格式上午上班时间日期/时间是短时间上午下班时间日期/时间是短时间下午上班时间日期/时间是短时间下午下班时间日期/时间是短时间表3-2加班记录表字段名称数据类型字段大小是否为必读字段备注加班记录编号自动编号长整型关键字职员编号数字长整型是加班日期日期/时间是加班时间日
14、期/时间是加班说明文本255否表3-3职员信息表字段名称数据类型字段大小是否为必填字段备注职员编号自动编号长整型否关键字姓名文本50是部门编号数字50否职位文本50否性别文本4否民族文本4否出生日期日期/时间否婚姻状况文本30否教育程度文本50否部门电话文本50否住所电话文本50否移动电话文本50否通讯地址文本255否邮政编码数字长整型否职员相片OLE对象长整型否表3-4考勤统计表字段名称数据类型字段大小是否为必读字段备注考勤统计编号文本50是关键字职员编号数字长整型是公休天数数字长整型是事假天数数字长整型是病假天数数字长整型是加班天数数字长整型是迟到次数数字长整型是早退次数数字长整型是记录日
15、期日期/时间是表3-5password字段名称数据类型字段大小是否为必读字段备注管理员编号数字长整型是关键字UNAME文本50是UPASS文本50是部门编号数字长整型是表3-6公司部门字段大小数据类型字段大小是否为必读字段备注部门编号自动编号长整型关键字部门名称文本50是表3-7请假记录表字段大小数据类型字段大小是否为必读字段备注请假记录编号自动编号长整型关键字职员编号数字长整型是开始日期日期/时间是结束日期日期/时间是请假类别文本20是请假原因文本255是表3-8出差记录表字段大小数据类型字段大小是否为必读字段备注出差记录编号自动编号长整型关键字职员编号数字长整型是开始日期日期/时间是结束日
16、期日期/时间是附加说明备注否表3-9出勤记录表字段大小数据类型字段大小是否为必读字段备注出勤记录编号数字长整型关键字职员编号数字长整型是出勤状况文本20是出勤日期日期/时间是出勤时间日期/时间否3.3.3数据表(1)职工信息表图3-2职工信息表(2)加班记录表图3-3加班记录表(3)公司部门表 图3-4公司部门表(4)工作时间表图3-5工作时间表第4章 详细设计4.1登陆窗体设计登陆时,用户名有几个下拉的选择,可以选择用USER1或用USER2等,然后输入密码。密码正确,会出现“欢迎使用本系统”的提示。密码不正确时,会出现“没有该用户”的提示。若是没有输入用户名或密码,会出现“必须输入用户名和
17、口令”提示。如图4-1,4-2,4-3。图4-1 成功登录 【登录系统界面】窗体图4-2 没有输入密码时【登录系统界面】窗体图4-3 密码输入错误时【登录系统界面】窗体(1)【登录】按钮的【单击】事件的代码如下:Private Sub Combo12_AfterUpdate() Forms!登录系统界面!Text14 = End SubPrivate Sub Command16_Click() Dim Cond As String Dim ps As String If IsNull(Forms!登录系统界面!Combo12) Or IsNull(Forms!登录系统界面!Text14) Th
18、en MsgBox 必须输入用户名/口令, vbOKOnly, 信息提示 Exit Sub End If Cond = uname= + Forms!登录系统界面!Combo12 + ps = DLookup(upass, password, Cond) If (ps Forms!登录系统界面!Text14) Then MsgBox 不存在该用户, vbOKOnly, 信息提示 Else MsgBox 欢迎使用本系统, vbOKOnly, 信息提示 End IfEnd SubPrivate Sub Form_Load() Forms!登录系统界面!Combo12 = Forms!登录系统界面!
19、Text14 = End Sub(2)【退出】按钮的【单击】事件的代码如下:Private Sub 退出_Click()DoCmd.CloseEnd Sub4.2 系统主菜单窗体设计和退出窗体设计主菜单窗体时,点哪一个命令,就会出现那个命令按钮的窗体。如图4-4。退出窗体相对来说就比较简单了。主要是提示用户是不是真的要退出,以防止用户不小心点了退出其余并不是想现在退出。如图图4-4 【职员考勤主界面】窗体图4-5 【退出系统】窗体(1)【由于出差,加班,请假记录代码类似,这里就不一一列举,只写出勤的代码】【出勤记录】按钮的【单击】事件的代码如下:Private Sub 出勤记录_Click()
20、On Error GoTo Err_出勤记录_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = 出勤记录 DoCmd.OpenForm stDocName, , , stLinkCriteriaExit_出勤记录_Click: Exit SubErr_出勤记录_Click: MsgBox Err.Description Resume Exit_出勤记录_Click End Sub(2)【职员考勤统计】按钮的【单击】事件的代码如下:Private Sub 职员考勤统计_Click()On Error Go
21、To Err_职员考勤统计_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = 职员考勤统计 DoCmd.OpenForm stDocName, , , stLinkCriteriaExit_职员考勤统计_Click: Exit SubErr_职员考勤统计_Click: MsgBox Err.Description Resume Exit_职员考勤统计_ClickEnd Sub(3)【职员信息】按钮的【单击】事件的代码如下:Private Sub 职员信息_Click()On Error GoTo Err
22、_职员信息_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = 职员信息 DoCmd.OpenForm stDocName, , , stLinkCriteriaExit_职员信息_Click: Exit SubErr_职员信息_Click: MsgBox Err.Description Resume Exit_职员信息_Click End Sub(4)【工作时间】按钮的【单击】事件的代码如下:Private Sub 工作时间_Click()On Error GoTo Err_工作时间_Click Dim
23、 stDocName As String Dim stLinkCriteria As StringstDocName = 工作时间 DoCmd.OpenForm stDocName, , , stLinkCriteriaExit_工作时间_Click: Exit SubErr_工作时间_Click: MsgBox Err.Description Resume Exit_工作时间_ClickEnd Sub(5)【搜索考勤记录】按钮的【单击】事件的代码如下:Private Sub 搜索考勤记录_Click()On Error GoTo Err_搜索考勤记录_Click Dim stDocName
24、As String Dim stLinkCriteria As StringstDocName = 搜索考勤记录 DoCmd.OpenForm stDocName, , , stLinkCriteriaExit_搜索考勤记录_Click: Exit SubErr_搜索考勤记录_Click: MsgBox Err.Description Resume Exit_搜索考勤记录_Click End Sub(6)【退出系统】按钮的【单击】事件的代码如下:Private Sub 退出系统_Click()On Error GoTo Err_退出系统_ClickIf MsgBox( 您确定需要退出职员考勤系
25、统吗? 按是确定 按否取消 , vbQuestion + vbYesNo) = vbYes Then DoCmd.Quit acQuitSaveAll End If Exit_退出系统_Click: Exit SubErr_退出系统_Click: MsgBox Err.Description Resume Exit_退出系统_Click End Sub4.3职员信息窗体设计职员信息主要是职员的信息进行添加、保存、修改、删除、查询。员工的信息主要包含工号、姓名、性别、年龄、部门、职位、备注。单击职员信息窗体中的添加职员可进入员工信息的添加,添加成功会出现在职员列表的菜单中。如图4-6。如果操作错
26、误,会弹出提示信息,指导操作人员的添加操作。还有一重要功能就是对员工信息的查询,这主要会在查询窗体中体现。 这是没有添加任何信息的窗体如图4-6。图4-6 【职员信息】窗体在窗体中添加“刘五的信息”的后窗体,刘五的信息已经出现在职员列表中,说明已经添加成功。图4-7单击【添加职员】按钮时添加的打算删除刘五的信息,会出现如下图4-8所示。点击“是”后,职员列表的会出现“已删除”的提示。图4-8 单击【删除职员】按钮时的窗体这是“删除刘五信息”后的窗体。如图4-9。图4-9 【删除职员】后的窗体(1)【添加职员】按钮的【单击】事件的代码如下:Private Sub 添加职员_Click()On E
27、rror GoTo Err_添加职员_Click DoCmd.GoToRecord , , acNewRecExit_添加职员_Click: Exit SubErr_添加职员_Click: MsgBox Err.Description Resume Exit_添加职员_ClickEnd Sub(2)【删除职员】按钮的【单击】事件的代码如下:Private Sub 删除职员_Click()On Error GoTo Err_删除职员_Click DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70 DoCmd.DoMenuItem ac
28、FormBar, acEditMenu, 6, , acMenuVer70Exit_删除职员_Click: Exit SubErr_删除职员_Click: MsgBox Err.Description Resume Exit_删除职员_ClickEnd Sub(3)【撤销记录】按钮的【单击】事件的代码如下:Private Sub 撤销记录_Click()On Error GoTo Err_撤销记录_Click DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70Exit_撤销记录_Click: Exit SubErr_撤销记
29、录_Click: MsgBox Err.Description Resume Exit_撤销记录_ClickEnd Sub(4)【保存记录】按钮的【单击】事件的代码如下:Private Sub 保存记录_Click()On Error GoTo Err_保存记录_Click DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70Exit_保存记录_Click: Exit SubErr_保存记录_Click: MsgBox Err.Description Resume Exit_保存记录_ClickEnd Su
30、b(5)【关闭窗体】按钮的【单击】事件的代码如下:Private Sub 关闭窗体_Click()On Error GoTo Err_关闭窗体_Click DoCmd.CloseExit_关闭窗体_Click: Exit SubErr_关闭窗体_Click: MsgBox Err.Description Resume Exit_关闭窗体_ClickEnd Sub4.4出差记录窗体设计出差记录窗体和出勤记录窗体,加班记录窗体,请假记录窗体一样,这里就不列举出来,用出差记录窗体代表,主要是对出差的的人员进行添加、保存、修改、删除。这个窗体的代码与上面一个代码类似,就不列出来了。在【出差记录】窗体中
31、添加信息,然后点击【出差记录子窗体】会要你输入职员编号,然后点【确定】,会出现一个表,你添加的内容,就会看到。如下图4-10,4-11,4-12所示。图4-10 单击【添加记录】添加的内容输入职员编号4.图4-11 【输入参数值】窗体图4-12 【出差记录子窗体】4.5工作时间窗体设计工作时间中的默认时间是一开始就设置的,而后的修改时间是自行输入的。如果点击【修改工作时间】,先输入数字,成功会出“已经成功修改时间!”的提示;点击【恢复默认时间】,会出现“已经恢复默认时间”的提示。如图4-13,4-14所示。 图4-13 【修改工作时间】窗体 图4-14 【恢复默认时间】窗体(1)【恢复默认时间
32、】按钮的【单击】事件的代码如下:Private Sub 恢复默认时间_Click()On Error GoTo Err_恢复默认时间_Click Me!上午上班时间 = 9:00 Me!上午下班时间 = 12:00 Me!下午上班时间 = 13:00 Me!下午下班时间 = 18:00 MsgBox 已经恢复为默认时间!, vbOKOnly, 恢复默认时间Exit_恢复默认时间_Click: Exit SubErr_恢复默认时间_Click: MsgBox Err.Description Resume Exit_恢复默认时间_ClickEnd Sub(2)【修改时间】按钮的【单击】事件的代码如
33、下:Private Sub 修改工作时间_Click()On Error GoTo Err_修改工作时间_ClickDim stDocName As StringstDocName = ChrW(26356) & ChrW(26032) & ChrW(26102) & ChrW(-27148)DoCmd.OpenQuery stDocName, acNormal, acEdit MsgBox 已经成功修改工作时间!, vbOKOnly, 修改成功Exit_修改工作时间_Click: Exit SubErr_修改工作时间_Click: MsgBox Err.Description Resume
34、Exit_修改工作时间_ClickEnd Sub第5章 总结与体会经过这些天来的设计,“考勤管理信息系统” 已经基本设计完成。在这几天的开发过程中,学到了许多有关数据库管理软件设计的东西,也对管理信息系统有了更加全面而深刻的认识。另外,通过对Access 2003 的使用,使我对该软件更加熟悉,学到了很多关于该软件做数据库的东西,也深深体会到了Access 2003的功能强大,使用和操作简单。基于该系统的一些设计,下面对系统做一个总结。在整个设计过程中,主要的工作有: 系统的权限及安全设计,包括用户权限的个人设定,密码保护与修改。 职工信息、出勤记录、公司部门、相关查询、报表和退出系统。模块的
35、页面设计及功能的设计实现。设计中力求界面友好、简洁,易于操作。代码部分尽量避免逻辑错误,算法设计简单合理,尽量使程序具有较好的可读性,有利于其他的设计者对程序的阅读。力求对数据库操作的安全与稳定,尽量避免数据库操作异常,并要保证查询的快速无误。保证程序的逻辑结构,编程时注意多使用通用方法(函数和过程),尝试用通用窗体函数。 当然在设计中还有很多不足的地方。对于这样的软件开发,由于没有相应的切合实际的需求分析,所以在开发过程中遇到了许多棘手的问题。现在开发出来的软件对数据库的操作还不够稳定常会出现非法操作,异常处理做的还很欠缺。程序代码中还存在不少的问题,这些在最后的测试过程中还有必要做较多的修
36、改和完善。在设计时,由于时间和能力有限,还有部分的功能没有实现,希望以后能够慢慢地发现问题,改正问题,力求将系统做得越来越完美,实用。参考资料1 罗超理,李万红管理信息系统原理与应用M北京:清华大学出版社20022 艾德才.计算机信息管理基础M北京:中国水利水电出版社20013 Tim F LeeImplement MISM北京:北京出版社2001 4 萨师煊,王珊数据库系统概论M北京:高等教育出版社20005EfremG.Mallach Support and Data Warehouse SystemsM北京:电子工业出版社20016 陈利平 数据库原理M北京:中国铁道出版社20077 孙家广 软件工程M 北京:高等教育出版社20058 李禹生,贾瑜Access 2003应用技术M北京:中国水利水电出版社20039杨涛著. Access 2003数据库应用实用教程.北京:清华大学出版社 24