《vb员工信息管理系统.docx》由会员分享,可在线阅读,更多相关《vb员工信息管理系统.docx(26页珍藏版)》请在三一办公上搜索。
1、课程设计说明书 NO.1员工信息管理系统1.需求分析 通过用VB6.0编写员工信息管理系统,掌握 Visual Basic语言的数据类型、表达式、程序结构与流程控件语句、数组、函数、过程的概念与使用方法; 掌握程序界面中菜单、工具栏、状态栏的设计方法,能用对话框设计单文档程序,掌握MDI多窗体程序的设计方法; 了解数据库应用程序的结构,初步掌握以DATA控件、ADO控件、ADO对象为数据源,设计数据库应用程序的方法;。该系统主要考虑了员工信息管理需求:,支持多条件查询;修改、添加、查询、删除数据方便简单,数据稳定性好。本系统可以对员工基本信息进行添加,修改,删除,查询操作,还可以对员工的调动信
2、息进行添加,删除,修改,查询等操作。真正实现了员工信息管理的自动化和信息化。2概要设计2.1系统结构 沈 阳 大 学课程设计说明书 NO.2管理员登录修改口令输入用户名和密码判断用户名和密码进入主界面退 出员工信息管理系统1系统2 员工基本信息3员工调动信息5帮助退 出添加员工信息修改员工信息查询员工信息添加调动信息修改密码添加用户删除员工信息修改调动信息查询调动信息员工基本信息员工调动信息删除调动信息关于4打印报表图1员工信息管理信息 沈 阳 大 学课程设计说明书 NO.32.2数据库设计数据库设计是数据库管理系统的第二个步骤,应根据系统功能模块绘制系统数据流图,总数据字典,设计数据库结构。
3、根据员工信息管理系统的需求,总结出下面的数据字典:(1)用户数据:内部工作人员使用员工信息管理系统的身份数据,包括的数据项有用户名、密码。(2)员工基本信息数据:包括的数据项有员工编号、员工姓名、性别、籍贯、年龄、生日、学历、专业、地址、邮编、电话、邮箱、入职时间、部门、职位等。(3)员工调职信息数据:包括的数据项有员工编号、员工姓名、原部门、新部门、原职务、新职务、调出时间、调入时间等。(4)员工人数信息数据:包括的数据项有员工人数。本员工信息管理系统使用Access创建员工信息管理系统的数据库。根据前面分析的数据字典,为每一个数据建立一个数据表。各个数据表的的结构分别如下:1)用户数据表用
4、户数据表命名为“用户表”,其结构如表1所示。其中“用户名”字段定义为主键(Primary Key).not null表示不允许空值。表1 用户表结构字段名数据类型说明用户名Char主键,字段大小为6密码Char字段大小为62)员工基本信息表:其结构如表2所示。其中,“员工编号”字段定义为主键(Primary Key). 沈 阳 大 学课程设计说明书 NO.4 沈 阳 大 学课程设计说明书 NO.5表2 员工基本信息数据表结构字段名数据类型说明编号Varchar自动编号,主键姓名Varchar不为空性别char不为空籍贯Varchar不为空年龄Int不为空出生日期smalldatatime不为空
5、学历Varchar不为空专业Varchar不为空地址Varchar不为空邮编Varchar不为空电话Varchar可为空邮箱Varchar可为空入职时间smalldatatime不为空进入公司时间smalldatatime不为空参加工作时间smalldatatime不为空起薪时间smalldatatime不为空职位Varchar不为空3)员工调动信息表:其结构如表3所示。包括的数据项有员工编号、员工姓名、原部门、新部门、原职务、新职务、调出时间、调入时间等。 沈 阳 大 学课程设计说明书 NO.6表3 读者类别数据表结构字段名数据类型说明记录编号char主键,字段为1员工编号varchar不为
6、空,字段为8员工姓名varchar不为空原部门varchar不为空新部门varchar不为空原职务varchar不为空新职务varchar不为空调出时间smalldatatime不为空调入时间smalldatatime不为空4)员工人数信息数据:包括的数据项有员工人数表4 员工人数数据表结构字段名数据类型说明员工人数Int主键3.详细设计3.1运行流程当程序运行这后,你首先看到的界面如下图所示,其中窗体的顶部有菜单编辑器,分别有系统, 员工基本信息,员工调动信息,打印报表,帮助等菜单 。窗体作为程序的启动窗体。使用菜单编辑器为主窗体添加多级子菜单:添加员工信息,修改员工信息,删除员工信息,查询
7、员工信息,添加员工调动信息,删除员工调动信息,修改员工调动信息,查询员工调动信息,帮助。系统主窗体如图2所示 沈 阳 大 学课程设计说明书 NO.7图2 主窗体2.4.2设计系统管理窗体系统管理菜单下共有3个子菜单,分别是添加用户,修改密码和退出。单击”添加用户”子菜单,则进入用户管理窗体。窗体中使用文本框显示记录用户名和密码字段数据。单击“添加用户”按钮可添加用户名和密码。单击“修改密码”按钮,可修改用户的密码。单击“退出”按钮,则关闭窗体。用户管理窗体如图3所示图3 用户管理窗体 沈 阳 大 学课程设计说明书 NO.8单击”修改密码”子菜单,则进入修改密码窗体。窗体中使用文本框显示旧密码,
8、新密码,确认密码数据。单击“确定”按钮可添加修改密码。数据库的uerinfo表中则相应的修改这一条纪录。单击“取消”按钮,可取消修改用户的密码。用户管理窗体如图3所示图4 密码管理窗体单击“员工基本信息”子菜单可以看到它有四个子菜单。其中单击“添加员工信息”子菜单,进入员工基本信息窗体。在窗体中可设置各种员工信息。单击“确定”按钮,可保存当前设置,单击“取消”按钮可取消记录的设置。添加员工信息窗体如图5所示。 沈 阳 大 学课程设计说明书 NO.9图5员工信息管理信息其中单击“查询员工信息”子菜单,进入查询员工基本信息窗体。在窗体中可根据员工编号,员工姓名以及员工的入职时间,其中任意一项信息,
9、都可以查询。单击“确定”按钮,开始查询,单击“取消”按钮可取消此操作。添加员工信息窗体如图6所示。 沈 阳 大 学课程设计说明书 NO.10图6查询员工基本信息其中单击“修改员工信息”子菜单,进入员工修改信息窗体。在窗体中可根据员工编号,员工姓名以及员工的入职时间,其中任意一项信息,都可以确定员工的信息。然后右键点击选中的员工信息,则会弹出员工基本信息表,此时,就可以修改员工信息了。单击“确定”按钮,则会弹出提示框,提示修改成功,数据库中也会相应的修改。单击“取消”按钮可取消此操作。其中单击“删除工信息”子菜单,进入员工删除信息窗体。在窗体中可根据员工编号,员工姓名以及员工的入职时间,其中任意
10、一项信息,都可以确定员工的信息。然后右键点击选中的员工信息,则会弹出菜单提示删除的操作,此时, 沈 阳 大 学课程设计说明书 NO.11就可以删除员工信息了。单击“确定”按钮,则会弹出提示框,提示删除成功,数据库中也会相应的修改。单击“取消”按钮可取消此操作。单击“员工调动信息”子菜单可以看到它有四个子菜单。其中单击“查询员工调动信息”子菜单,进入员工调动信息窗体。在窗体中可根据员工编号,员工的调出时间,其中任意一项信息,都可以查询。单击“确定”按钮,开始查询,单击“取消”按钮可取消此操作。添加员工信息窗体如图7所示。图7查询员工调动信息其中单击“添加员工调动信息”子菜单,进入员工调动信息窗体
11、。在窗体中可设置各种员工调动信息。单击“确定”按钮,可保存当前设置,单击“取消”按钮可取消记录的设置。添加员工调动信息窗体如图8所示。 沈 阳 大 学课程设计说明书 NO.12图8添加员工调动信息其中单击“修改员工调动信息”子菜单,进入员工基本信息窗体。在窗体中可根据员工编号、员工的调出时间,其中任意一项信息,都可以确定员工的信息。然后右键点击选中的员工信息,则会弹出员工基本信息表,此时,就可以修改员工信息了。单击“确定”按钮,则会弹出提示框,提示修改成功,数据库中也会相应的修改。单击“取消”按钮可取消此操作。其中单击“删除员工调动信息”子菜单,进入员工基本信息窗体。在窗体中可根据员工编号、员
12、工的调出时间,其中任意一项信息,都可以确定员工的信息。然后右键点击选中的员工信息,则会弹出员工基本信息表,此时,就可以删除员工信息了。单击“确定”按钮,则会弹出提示框,提示删除成功,数据库中也会相应的修改。单击“取消”按钮可取消此操作。 沈 阳 大 学课程设计说明书 NO.132.4.4系统登录员工信息管理系统在启动时首先显示登录窗体,用户输入用户名和密码后,单击“确定”按钮登录。如果用户名和密码正确,则启动系统主窗体。单击“取消”按钮则取消登录。系统登录窗体如图9所示。图9 系统登录窗体3.设计结果与分析在完成了程序各个功能模块的创建之后,就可以运行整个系统了。运行程序,进入系统,界面如图1
13、0所示:图10 系统主窗体 沈 阳 大 学课程设计说明书 NO.14登录系统由用户登录、修改密码、退出系统等组成。系统管理由添加用户、修改密码和退出系统组成,其中管理员中可以对员工的基本信息进行添加,修改,查询,删除操作;还可以对员工的调动信息进行添加,修改,查询,删除操作;还可以将员工的基本信息和员工的调动信息打印报表。界面如图11所示:图11 员工信息打印报表 沈 阳 大 学课程设计说明书 NO.15设计体会通过本次课程设计,使我从更深的层次了解了VB的设计技巧和应用方法。在程序的编制和调试过程中,我从中学到了很多有用的方法,比如通过本次设计,我更深刻的体会到了VB系统的方便与实用。在课程
14、设计的过程中,我对课本上的知识进行了复习,从中找出了不少盲点,由衷地感觉到学习过程中应该把学的知识作扎实,多动手多思考,这样才能最大限度的减少知识的漏洞。 把课本上的东西变成实际的东西,让其有使用的价值,是一件很让人高兴的事。我切实的体会到VB这门课程是有用处的,它解释了我平时学习中的很多疑惑,让我增长了很多见识。 .参考文献1 刘天惠.Visual Basic程序设计教程M. 北京: 清华大学大学出版社,2003.12-24 2 龚沛曾.Visual Basic程序设计教程M. 高等教育出版社, 2004.28-453 蒋加伏.Visual Basic程序设计教程M.北京: 北京邮电大学出版
15、社,2003.10-564 Microsoft .Visual Basic 6.0 中文版控件大全M北京:电子工业出版社,2004.1523.附录 源程序代码如下:()用户登录窗体Private Sub cmdOK_Click() Dim SQL As String Dim rs As ADODB.Recordset 沈 阳 大 学课程设计说明书 NO.16If Trim(UserName.Text = ) Then MsgBox 没有输入用户名称,请重新输入!, vbOKOnly + vbExclamation, 警告 UserName.SetFocus Else 查询用户 SQL = se
16、lect * from UserInfo where UserID= & UserName.Text & Set rs = TransactSQL(SQL) If iflag = 1 Then If rs.EOF = True Then MsgBox 没有这个用户,请重新输入!, vbOKOnly + vbExclamation, 警告 UserName.SetFocus Else If Trim(rs.Fields(1) = Trim(PassWord.Text) Then rs.Close Me.Hide gUserName = Trim(UserName.Text) 保存用户名称 Frm
17、Main.Show Unload Me Else MsgBox 密码不正确,请重新输入!, vbOKOnly + vbExclamation, 警告 PassWord.SetFocus PassWord.Text = 沈 阳 大 学课程设计说明书 NO.17End If End IfElse Unload Me End IfEnd IfpwdCount = pwdCount + 1 判断输入次数 If pwdCount = 3 Then Unload Me Exit Sub End IfEnd SubPrivate Sub Form_Load() pwdCount = 0 gUserName
18、= End SubPrivate Sub PassWord_KeyDown(KeyCode As Integer, Shift As Integer) TabToEnter KeyCodeEnd SubPrivate Sub UserName_KeyDown(KeyCode As Integer, Shift As Integer) TabToEnter KeyCodeEnd Sub 沈 阳 大 学课程设计说明书 NO.18()添加用户窗体Option ExplicitPublic str1 As String 保存修改时的SQL语句Public ID As Integer 保存记录编号Pri
19、vate baddflag As Booleanrivate Sub AID_KeyDown(KeyCode As Integer, Shift As Integer) TabToEnter KeyCodeEnd SubPrivate Sub AID_LostFocus() Dim SQL As String Dim rs As New ADODB.Recordset SQL = select SName,SDept,SPosition from StuffInfo where SID= & Me.AID.Text & Set rs = TransactSQL(SQL) If rs.EOF =
20、 False Then Me.AName = rs(0) 初始化员工姓名 Me.AOldDept = rs(1) Me.AOldPosition = rs(2) ElseMsgBox 员工编号输入错误,或者没有这个员工!, vbOKOnly + vbExclamation, 警告! Me.AID = Me.AID.SetFocus Me.AID.ListIndex = 0End If rs.CloseEnd Sub 沈 阳 大 学课程设计说明书 NO.19Private Sub cmdCancel_Click() Unload Me Exit SubEnd Subrivate Sub chec
21、kinput() If Me.ANewPosition = Then MsgBox 请输入新的职务!, vbOKOnly + vbExclamation, 警告! Me.ANewPosition.SetFocus ElseIf Me.AOutTime = Or IsDate(Me.AOutTime) = False Then MsgBox 请输入正确的调出时间!, vbOKOnly + vbExclamation, 警告! Me.AOutTime = Me.AOutTime.SetFocus ElseIf Me.AInTime = Or IsDate(Me.AInTime) = False T
22、hen MsgBox 请输入正确的调入时间!, vbOKOnly + vbExclamation, 警告! Me.AInTime = Me.AInTime.SetFocus Else baddflag = True End IfEnd SubPrivate Sub cmdOK_Click() Dim SQL As String Dim rs As New ADODB.Recordset 沈 阳 大 学课程设计说明书 NO.20baddflag = FalseCall checkinputIf baddflag = True Then If flag = 1 Then Call checkinp
23、ut SQL = select * from AlterationInfo Set rs = TransactSQL(SQL)rs.AddNew rs.Fields(1) = Me.AID rs.Fields(2) = Me.AName rs.Fields(3) = Me.AOldDept rs.Fields(4) = Me.ANewDept rs.Fields(5) = Me.AOldPosition rs.Fields(6) = Me.ANewPosition rs.Fields(7) = Me.AOutTime rs.Fields(8) = Me.AInTime rs.Fields(9)
24、 = Me.ARemark rs.Update rs.CloseSQL = update StuffInfo set SDept= & Me.ANewDept & , SPosition= SQL = SQL & Me.ANewPosition & where SID= & Me.AID & TransactSQL (SQL) MsgBox 已经添加调动信息!, vbOKOnly + vbExclamation, 添加结果! SQL = select * from AlterationInfo order by ID 沈 阳 大 学课程设计说明书 NO.21frmAlterationResul
25、t.Adodc1.ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0;Data Source= + App.Path + Person.mdb frmAlterationResult.Adodc1.RecordSource = SQL If SQL Then frmAlterationResult.Adodc1.Refresh End IfElse 修改记录 Call checkinput SQL = update StuffInfo set SDept= & Me.ANewDept & , SPosition= SQL = SQL & Me
26、.ANewPosition & where SID= & Me.AID & TransactSQL (SQL) SQL = update AlterationInfo set AOldDept= & Me.AOldDept & ,ANewDept= SQL = SQL & Me.ANewDept & ,AOldPosition= & Me.AOldPosition SQL = SQL & ,ANewPosition= & Me.ANewPosition & ,AOutTime=# & Me.AOutTime SQL = SQL & #,AInTime=# & Me.AInTime & # wh
27、ere ID= & ID TransactSQL (SQL) MsgBox 已经修改信息!, vbOKOnly + vbExclamation, 修改结果! Unload Me SQL = select * from AlterationInfo order by ID frmAlterationResult.Adodc1.ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0;Data Source= + App.Path + Person.mdb frmAlterationResult.Adodc1.RecordSource = SQL If
28、 SQL Then frmAlterationResult.Adodc1.Refresh End If 沈 阳 大 学课程设计说明书 NO.22Set frmAlterationResult.DataGrid1.DataSource = frmAlterationResult.Adodc1.Recordset frmAlterationResult.DataGrid1.Refresh frmAlterationResult.Show frmAlterationResult.ZOrder 0 Call init Me.ZOrder 0 End If End IfEnd Sub(3)查询员工信息窗
29、体Option ExplicitPrivate query As StringPrivate fromdate As StringPrivate todate As StringPrivate Sub cmdCancel_Click() Unload Me Exit SubEnd SubPrivate Sub CombineDate() fromdate = Me.FromYear.Text & - & Me.FromMonth.Text & -1 fromdate = Format(Me.FromYear.Text & - & Me.FromMonth.Text & -1, yyyy-mm-
30、dd) todate = Me.ToYear.Text & - & Me.ToMonth.Text & -1 todate = Format(todate, yyyy-mm-dd)End Sub 沈 阳 大 学课程设计说明书 NO.23Private Sub setSQL() If IDCheck.Value = vbChecked Then query = select * from StuffInfo where SID= & Trim(Me.SID) & End IfIf NameCheck.Value = vbChecked Then query = select * from Stu
31、ffInfo where SName= & Trim(Me.SName) & End IfEnd SubPrivate Sub cmdOK_Click() Call CombineDate Call setSQL frmResult.createList (query) frmResult.Show Unload MeEnd SubPrivate Sub Form_Load() Dim i As Integer Dim SQL As String Dim rs As New ADODB.Recordset SQL = select distinct datepart(yy,SInTime) f
32、rom StuffInfo Set rs = TransactSQL(SQL) If Not rs.EOF Then rs.MoveFirst While Not rs.EOF If Not IsNull(rs.Fields(0) Then 沈 阳 大 学课程设计说明书 NO.24Me.FromYear.AddItem rs(0) Me.ToYear.AddItem rs(0) End If rs.MoveNext Wendrs.Close Me.FromYear.ListIndex = 0 Me.ToYear.ListIndex = 0 End If For i = 1 To 12 Me.FromMonth.AddItem i Me.ToMonth.AddItem i Next i Me.FromMonth.ListIndex = 0 Me.ToMonth.ListIndex = 0End Sub至此,整个程序系统的实现就完成了。 沈 阳 大 学