数据库课程设计-职工考勤系统.docx
精选优质文档-倾情为你奉上摘要 在现代企业管理中,企业信息化是提高企业管理效率的重要手段。随着企业人事管理的日趋复杂和企业人员的增多,企业的考勤管理变得越来越复杂。规范的考勤管理是现代企业提高管理效益的重要保障,而传统的人工管理存在着效率低、不易统计、成本高和易出错等弊端,已经无法适应现代企业的需求。随着计算机技术和通信技术的迅速发展,将传统的人工考勤管理信息化,建立一个高效率的、无差错的考勤管理系统,能够有效地帮助企业实现“公正考勤,高效薪资”的管理理念,使企业的管理水平登上一个新的台阶。本课程设计主要是对企业员工的考勤管理。本系统的设计只要是为了实现管理和查询企业员工的工作出勤情况。主要功能有:刷卡记录管理、加班管理、请假管理、用户登录和注册功能以及月考勤统计表的查询。本系统的数据库是用Microsoft Access 2007软件进行创建和设计,分别包括刷卡记录信息表,加班信息表,请假信息表,月考勤统计表和登录信息表五个表。通过系统ODBC数据源管理工具把已创建的数据源与系统数据库相连。然后利用Visual Basic软件对系统的窗口进行设计,包括登录界面、注册新用户界面、主界面、浏览窗体和查询窗体等,可以通过这些窗体进行登录操作,对输入的用户信息进行验证,和注册新用户操作,以及最重要的操作是对数据库中信息进行修改与查询。并可以对数据进行添加与删除,做到及时更新员工考勤信息。关键词:考勤管理,Microsoft Access 2007软件,Visual Basic软件1. 系统功能概述1.1 系统功能考勤管理系统主要是实现刷卡记录、加班和请假的管理以及员工月考勤统计。设计为MDI窗体,含有主菜单:文件、管理考勤信息、查询考勤信息。文件菜单包含以下子菜单及其功能:注册:打开“注册新用户”窗体关闭:结束程序运行登录:登录主界面管理考勤信息包含以下子菜单:刷卡信息菜单:显示刷卡信息浏览和编辑窗体加班信息菜单:显示加班信息浏览和编辑窗体请假信息菜单:显示请假信息浏览和编辑窗体查询考勤信息 包含以下子菜单:刷卡信息查询菜单:显示刷卡信息查询窗体加班信息查询菜单:显示加班信息查询窗体请假信息查询菜单:显示请假信息查询窗体月考勤信息查询菜单:显示月考勤信息查询窗体1.2 系统结构总图考勤管理系统的结构总图,如图1.1所示:请假信息管理刷卡信息管理加班信息管理刷卡信息查询加班信息查询请假信息查询月考勤信息查询查询信息系统管理信息系统考勤管理系统 图1.1 考勤管理系统的结构总体2.数据库设计2.1 需求分析随着现代数据的信息化和大数据时代的到来,各个企业也逐渐实行信息化管理。而企业考勤管理一直以来就遵循着传统的人工管理制度,这种人工管理方法已经不再是高效、快速解决问题的最好选择。随着各企业的快速发展和企业员工频繁交替更换,使得企业对考勤管理系统有着更高的要求,来达到企业利益最大化和职工利益的公平性。数据库管理系统能快速的帮助管理者处理数据,提高工作效率,实现公平公正的管理制度。2.2 E-R模型刷卡记录信息管理E-R图,如图2.1所示。加班信息管理E-R图,如图2.2所示。请假信息管理E-R图,如图2.3所示。月考勤统计信息E-R图,如图2.4所示。登录E-R图,如图2.5所示。全局E-R图,如图2.6所示。刷卡时间刷卡记录信息管理职员编号刷卡日期图2.1 刷卡记录信息管理实体属性图加班原因加班时数加班日期职员编号加班信息管理 图2.2 加班信息管理实体属性图请假日期职员编号请假信息管理请假原因请假时数 图2.3 请假信息管理实体属性图早退次数迟到次数月考勤统计信息管理旷工次数请假次数加班时间职员编号日期图2.4 月考勤统计信息管理实体属性图密码用户名登录 图2.5 登录实体属性图日期刷卡日期职员编号刷卡记录信息刷卡时间加班原因加班时数加班日期加班信息职员编号请假时数请假日期请假原因职员编号请假次数加班时间职员编号迟到次数早退次数旷工次数请假信息刷卡用户名密码登录刷卡刷卡刷卡刷卡月考勤统计职工信息图2.6 全局E-R图2.3 关系模型一个实体性转换为一个关系模式。实体的属性就是关系的属性,实体的码就是关系的码。根据E-R图向关系模型转换的原则,就是把E-R图转换为关系模型。刷卡记录信息:职员编号、刷卡时间、刷卡日期(主键为职员编号)加班信息:职员编号、加班时数、加班日期、加班原因(主键为职员编号)请假信息:职员编号、请假日期、请假次数、请假原因(主键为职员编号)月考勤统计信息:职员编号、日期、加班时间、请假次数、旷工次数、迟到次数、早退次数(主键为职员编号)登录:用户名、密码(主键为用户名)2.4 表结构设计刷卡信息表结构如图2.7所示。刷卡记录职员编号日期刷卡时间8522015/12/77点57分8532015/12/77点41分8542015/12/77点10分8552015/12/77点30分 图2.8 刷卡信息表图加班信息表结构如图2.8所示。加班管理职员编号加班日期加班时数加班原因8522015/11/22工作未完成8532015/11/102工作未完成8542015/11/112工作未完成8552015/11/262工作未完成图2.8 加班信息表图请加信息表结构如图2.9所示。请假管理职员编号请假日期请假时数请假原因8522015/12/12生病8532015/12/21生病8552015/12/51生病图2.9 请假信息表图月考勤统计表结构如图2.10所示。月考勤统计表职员编号日期迟到次数早退次数旷工次数请假次数加班时间8522015/12/7100128532015/12/7000128542015/12/7000028552015/12/700012图2.10 月考勤统计表图 登录表结构如图2.11所示。登录表用户名密码3系统各功能模块的详细设计3.1 各窗体的设计此考勤管理系统共包括13个窗体,分别是登录、注册、刷卡记录信息查询、加班信息查询、请假信息查询、月考勤信息查询和MDI主窗体。3.2 各窗体实现及代码3.2.1登录窗体打开登录界面后,输入用户名和密码,点击登录按钮,进入MDI主窗体,如图3.1所示。图3.1登录界面图代码:Dim micount As IntegerPrivate Sub Command1_Click()Dim str As Stringstr = "select * from 登录 where 用户名 ='" & Text1.Text & "'"Adodc1.RecordSource = strAdodc1.RefreshIf Adodc1.Recordset.BOF = True ThenMsgBox "用户名错误,请重新输入", vbExlamation, "警告"Text1.Text = ""Text2.Text = ""Text1.SetFocusElseIf Trim(Adodc1.Recordset.Fields("密码") = Text2.Text ThenMDIForm1.ShowUnload MeMDIForm1.g.Enabled = TrueMDIForm1.c.Enabled = TrueElse MsgBox "密码错误,请重新输入", vbExlamation, "警告"Text2.Text = ""Text2.SetFocusEnd IfEnd Ifmicount = micount + 1If micount >= 3 Then Unload MeEnd SubPrivate Sub Command2_Click()Unload MeEnd Sub3.2.2 MDI主窗体 主窗体含有主菜单:文件、数据管理、数据查询。文件菜单包含子菜单登录、注册、退出。数据管理菜单包含子菜单有:刷卡信息管理、加班信息管理和请假信息管理。数据查询包含子菜单有:刷卡信息查询、加班信息查询、请假信息查询和月考勤信息查询。如图3.2所示。图3.2 MDI主窗体图代码:Private Sub c1_Click()刷卡信息.ShowEnd SubPrivate Sub c2_Click()加班信息.ShowEnd SubPrivate Sub c3_Click()请假信息.ShowEnd SubPrivate Sub g1_Click()刷卡信息查询.ShowEnd SubPrivate Sub g2_Click()加班信息查询.ShowEnd SubPrivate Sub g3_Click()请假信息查询.ShowEnd SubPrivate Sub g4_Click()月考勤信息查询.ShowEnd SubPrivate Sub MDIForm_Load()g.Enabled = Falsec.Enabled = FalseEnd SubPrivate Sub w1_Click()注册.ShowEnd SubPrivate Sub w2_Click()登录.ShowEnd SubPrivate Sub w3_Click()Unload MeEnd Sub3.2.3新用户注册在主窗体上点击查单文件下的注册,进入注册界面,输入用户名、密码和确认密码,点击确定,注册成功。如图3.3所示。图3.3 新用户注册图代码:Private Sub Command1_Click()Dim sqlstr As StringIf Text1 = "" Then MsgBox "请输入用户名!", vbExclamation, "确认用户名" Text1.SetFocus Exit SubElse sqlstr = "Select * from 登录 where 用户名='" & Text1.Text & "'" Adodc1.RecordSource = sqlstr Adodc1.Refresh If Adodc1.Recordset.EOF = False Then MsgBox "用户名已存在,请重新输入!", vbExclamation, "检验用户名" Text1 = "" Text1.SetFocus Text2 = "" Text3 = "" Exit Sub End IfEnd IfIf Text2 <> Text3 Then MsgBox "二次输入的密码不一致,请重新输入", vbExclamation, "检验密码" Text2 = "": Text3 = "" Text2.SetFocus Exit SubElseIf Text2 = "" Then MsgBox "密码不能为空!", vbExclamation, "检验密码" Text2.SetFocusElse Adodc1.Recordset.AddNew Adodc1.Recordset.Fields("用户名") = Trim(Text1) Adodc1.Recordset.Fields("密码") = Trim(Text2) Adodc1.Recordset.Update MsgBox "成功注册新用户!", vbInformation, "添加用户" Me.Hide MDIForm1.ShowUnload MeEnd IfEnd SubPrivate Sub Command2_Click()Unload MeMDIForm1.ShowEnd Sub3.2.4 刷卡信息点击MDI主窗体的数据管理菜单下的刷卡信息,出现刷卡信息界面如图3.4所示,如有修改,点击修改,弹出图3.5所示界面便于增加、删除、前移和后移的功能。图3.4图3.5代码:Private Sub Command1_Click()Adodc1.Recordset.MoveFirstCommand1.Enabled = FalseCommand2.Enabled = FalseCommand3.Enabled = TrueCommand4.Enabled = TrueLabel5.Caption = "记录:" & Adodc1.Recordset.AbsolutePosition & "/" & Adodc1.Recordset.RecordCountEnd SubPrivate Sub Command10_Click()Adodc1.RefreshCommand6.Enabled = TrueCommand7.Enabled = TrueCommand8.Enabled = TrueCommand9.Enabled = FalseCommand10.Enabled = FalseText1.Locked = TrueText2.Locked = TrueText3.Locked = TrueText4.Locked = TrueEnd SubPrivate Sub Command2_Click()Adodc1.Recordset.MovePreviousCommand3.Enabled = TrueCommand4.Enabled = TrueIf Adodc1.Recordset.BOF ThenAdodc1.Recordset.MoveFirstCommand1.Enabled = FalseCommand2.Enabled = FalseEnd IfLabel5.Caption = "记录:" & Adodc1.Recordset.AbsolutePosition & "/" & Adodc1.Recordset.RecordCountEnd SubPrivate Sub Command3_Click()Adodc1.Recordset.MoveNextCommand1.Enabled = TrueCommand2.Enabled = TrueIf Adodc1.Recordset.EOF ThenAdodc1.Recordset.MoveLastCommand3.Enabled = FalseCommand4.Enabled = FalseEnd IfLabel5.Caption = "记录:" & Adodc1.Recordset.AbsolutePosition & "/" & Adodc1.Recordset.RecordCountEnd SubPrivate Sub Command4_Click()Adodc1.Recordset.MoveLastCommand1.Enabled = TrueCommand2.Enabled = TrueCommand3.Enabled = FalseCommand4.Enabled = FalseLabel5.Caption = "记录:" & Adodc1.Recordset.AbsolutePosition & "/" & Adodc1.Recordset.RecordCountEnd SubPrivate Sub Command5_Click()Dim n As Integern = Text5.TextAdodc1.Recordset.Move nLabel5.Caption = "记录:" & Adodc1.Recordset.AbsolutePosition & "/" & Adodc1.Recordset.RecordCountEnd SubPrivate Sub Command6_Click()Adodc1.Recordset.AddNewCommand6.Enabled = FalseCommand7.Enabled = FalseCommand8.Enabled = FalseCommand9.Enabled = TrueCommand10.Enabled = TrueEnd SubPrivate Sub Command7_Click()x = MsgBox("确实要删除当前记录吗?", vbYesNo + vbQuestion, "确认")If x = vbYes Then Adodc1.Recordset.Delete Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then Adodc1.Recordset.MoveLast End IfElse Adodc1.RefreshEnd IfEnd SubPrivate Sub Command8_Click()Text1.Locked = FalseText2.Locked = FalseText3.Locked = FalseText4.Locked = FalseCommand6.Enabled = FalseCommand7.Enabled = FalseCommand8.Enabled = FalseCommand9.Enabled = TrueCommand10.Enabled = TrueEnd SubPrivate Sub Command9_Click()Adodc1.Recordset.UpdateCommand6.Enabled = TrueCommand7.Enabled = TrueCommand8.Enabled = TrueCommand9.Enabled = FalseCommand10.Enabled = FalseText1.Locked = TrueText2.Locked = TrueText3.Locked = TrueText4.Locked = TrueEnd SubPrivate Sub Form_Load()Command1.Enabled = FalseCommand2.Enabled = FalseCommand3.Enabled = TrueCommand4.Enabled = TrueCommand6.Enabled = TrueCommand7.Enabled = TrueCommand8.Enabled = TrueCommand9.Enabled = FalseCommand10.Enabled = FalseLabel5.Caption = "记录:" & Adodc1.Recordset.AbsolutePosition & "/" & Adodc1.Recordset.RecordCountEnd Sub3.2.5加班信息管理点击MDI主窗体的数据管理菜单下的加班信息管理,出现加班信息管理界面,可以进行增加,删除,修改,前移后移等功能。如图3.6所示。图3.6图3.7代码同上。3.2.6请假信息管理点击MDI主窗体的数据管理菜单下的请假信息管理,出现请假信息管理界面,可以进行增加,删除,修改,前移后移等功能。如图3.7所示。图3.73.2.7刷卡信息查询点击MDI主窗体的数据查询菜单下的刷卡信息查询,出现刷卡信息查询界面,可以进行增加,删除,修改,前移后移等功能。如图3.8所示。代码:Private Sub Command1_Click()Dim str As Stringstr = " Select * From 刷卡记录 " str = str & " Where " & Combo1.Text & " Like'" & Text1 & "%' " Adodc1.RecordSource = str Adodc1.RefreshEnd SubPrivate Sub Command3_Click()Unload Form8MDIForm1.ShowEnd SubPrivate Sub Form_Load()Combo1.AddItem "职员编号"Combo1.AddItem "无"Text1.Text = ""Combo1.Text = ""End Sub3.2.8加班信息查询点击MDI主窗体的数据查询菜单下的加班信息查询,出现加班信息查询界面,可以进行增加,删除,修改,前移后移等功能。如图3.9所示。代码:Private Sub Cmd1_Click()Dim str As Stringstr = " Select * From 加班管理 " str = str & " Where " & Combo1.Text & " Like'" & Text1 & "%' " Adodc1.RecordSource = str Adodc1.RefreshEnd SubPrivate Sub Form_Load()Combo1.AddItem "职员编号"Combo1.AddItem "无"Text1.Text = ""Combo1.Text = ""End SubPrivate Sub Command3_Click()Unload Form6MDIForm1.ShowEnd Sub3.2.9请假信息查询点击MDI主窗体的数据查询菜单下的请假信息查询,出现请假信息查询界面,可以进行增加,删除,修改,前移后移等功能。如图3.10所示。代码:Private Sub Command1_Click()Dim str As Stringstr = " Select * From 请假管理 " str = str & " Where " & Combo1.Text & " Like'" & Text1 & "%' " Adodc1.RecordSource = str Adodc1.RefreshEnd SubPrivate Sub Form_Load()Combo1.AddItem "职员编号"Combo1.AddItem "无"Text1.Text = ""Combo1.Text = ""End SubPrivate Sub Command4_Click()Unload Form7MDIForm1.ShowEnd Sub3.2.10月考勤信息查询点击MDI主窗体的数据查询菜单下的月考勤信息查询,出现月考勤信息查询界面,可以进行增加,删除,修改,前移后移等功能。如图3.11所示。代码:Private Sub Command1_Click()Dim str As Stringstr = " Select * From 月考勤统计表 " str = str & " Where " & Combo1.Text & " Like'" & Text1 & "%' " Adodc1.RecordSource = str Adodc1.RefreshEnd SubPrivate Sub Command2_Click()Unload Form12MDIForm1.ShowEnd SubPrivate Sub Form_Load()Combo1.AddItem "职员编号"Combo1.AddItem "无"Text1.Text = ""Combo1.Text = ""End Sub结论本系统的主要功能是建立考勤管理系统,对刷卡信息、加班信息、请假信息和月考勤信息的管理和查询。通过这次课程设计使我对数据库和VB有了更深一层的认识,锻炼了我的思维能力和动手能力。其中最重要的是学会了如何建立数据库、连接数据库、修改数据库和查询数据库,并且运用VB软件建立窗体。参考文献1. 王珊 . 数据库系统简明教程 . 北京 . 高等教育出版,2004.92. 王珊,朱青 . 数据库系统概论学习指导与习题解答 . 北京 . 高等教育出版社, 2003;3. Weldom J L . Data Base Administration . New York . Plenum Press,1981;4. Cardenas A . Data Base Management Systems(Second Edition) . Allyn and Bacon ,1985;5. Codd E F . A Relational Model of Data for Large Shared Data Banks . CACM 13 NO.6 , 1970;6. 刘启愿,刘怡 . 数据库与信息系统的安全.数据库技术丛书之一 . 北京 . 科学出版社,1999。专心-专注-专业