课程设计报告305010230 杨帆人事管理信息系统.docx
《课程设计报告305010230 杨帆人事管理信息系统.docx》由会员分享,可在线阅读,更多相关《课程设计报告305010230 杨帆人事管理信息系统.docx(27页珍藏版)》请在冰豆网上搜索。
课程设计报告305010230杨帆人事管理信息系统
人事管理信息系统
由于信息化社会的飞速发展,人事管理系统已经成为每一个企业,政府部门以及其他机构组成中不可或缺的一部分。
人事管理系统是满足了公司对员工基本信息管理的需求,拥有人事管理系统,可以更加方便的进行人事的管理,操作简单方便,可以为员工节省大量时间,从而提高工作效率。
本节针对人事管理系统介绍使用VB开发数据库应用程序的基本方法。
本程序的记录虽然包含的信息量较少,但其功能与实现方法具有相当的普遍性和实用性。
1系统设计
1.1系统功能分析
系统开发的总体任务是实现各种信息的系统化、规范化和自动化。
系统功能分析是在系统开发的总体任务的基础上完成。
考虑系统的通用功能,本例子中人事管理信息系统需要完成功能主要有:
(1).密码设置:
每个管理员均可有自己的用户名和密码,可以防止非本系统人员进入系统。
(2).信息管理:
可对职工信息进行更改,添加和删除,。
(3).信息查询:
能够快速地进行员工基本信息各种组合的查询。
双击查询结果可对其进行更改。
(4).信息统计:
饱含简单统计和自定义统计。
其中自定义统计可进行各种组合的统计。
(5).数据打印:
对职工基本信息进行打印和导出。
1.2系统功能模块设计
对上述各项功能进行集中、分块,按照结构化程序设计的要求,得到如图1-2-1所示的系统功能模块图。
信息统计
信息查询
清空删除
查找添加
数据管理
信息管理
设置密码
用户登录
图1-2-1系统功能模块图
2数据库设计
数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。
合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。
在数据库中建立一个名为人事系统管理的数据库,其包含数据库表RSGL(职工表)和Yh(用户密码表),表的结构见表2-1与表2-2
表2-1职工表
列名
数据类型
可否为空
说明
职工编号
Text(8)
not
主键
职工姓名
Text(8)
yes
职工年龄
Integer
(2)
not
职工性别
Text
(2)
yes
所在部门
Text(16)
yes
技术职称
Text(12)
yes
工作时间
Data(8)
not
婚姻状况
Text(4)
yes
基本工资
Single(4)
not
表2-2用户密码表
列名
数据类型
可否为空
说明
yname
Text(50)
not
用户名(主键)
ypass
Text(50)
not
口令
3用户登陆界面
执行“工程”菜单中的“添加窗体“命令,添加一个新的窗体。
在里面添加两个容器(frame1,Frame2),3个标签,两个文本框,两个命令按钮,一个数据控件(Data)。
用户登陆界面如图3-1所示。
图3-1用户登录窗体
设置各控件的属性如图3-2
图3-2各控件属性
对象名称
属性名称
属性值
说明
Form1
Name
login
窗体名称
Caption
用户登录
设置标题栏
Frame1
Caption
无
设置为空
Frame2
Caption
无
设置为空
Label1
Caption
欢迎使用人事管理系统
设置标签内容
Font
隶书粗体二号
设置字体
ForeColor
H000000FF&
设置字体颜色
Lable2
Caption
用户名:
设置标签内容
Lable3
Caption
口令:
设置标签内容
Text1
Caption
无
设置为空
Text2
Caption
无
设置为空
Command1
Caption
确定
设置命令按钮
Command2
Caption
退出
设置命令按钮
Data1
DataBaseName
Yh.mdb
绑定数据库
在通用段添加代码:
DimxchangeAsInteger
DimychangeAsInteger
窗体的load事件过程代码如下:
PrivateSubForm_Load()
xchange=100
ychange=100
Endsub
PrivateSubCommand1_Click()
‘======================================================
‘判断用户输入的名称和口令是否合法
‘首先判断输入的用户名是否存在,如果不存在,给出提示
‘如果用户名存在,判断输入口令是否正确,如果错误,给出提示
‘如果用户名和口令输入正确,卸载本窗体,
‘否则,判断是否用完三次机会,并给出相应提示。
‘=======================================================
DimIsuserAsBoolean‘用户是否存在
DimpwdAsString
DimUnameAsString
StaticcountAsInteger
pwd=Trim(Text2.Text)‘记录输入口令次数
Uname=Trim(Text1.Text)
Isuser=False‘比较用户名称和口令的
正确与否
DoWhileNotData1.Recordse.EOF
IfUname=Data1.Recordset.Fields(0)Then
‘当用户名和当前记录名称相同时的处理
Ifpwd=Data1.Recordset.Fields("ypass")Then
’如果口令输入正确,卸载本窗体
UnloadMe
mdifrm.Show
ExitSub
Else
Ifcount<2Then‘如果口令错误,给出提示信息
MsgBox"口令错误,请重新输入"
Text2.Text=""
Text2.SetFocus
EndIf
Isuser=True‘标识为合法用户
ExitDo
EndIf
EndIf
Data1.Recordset.MoveNext‘移动到下一条记录
Loop
count=count+1‘输入口令次数加一
Ifcount=3Then‘输入三次口令且错误,退出程序
MsgBox”非法用户,不能使用本系统”
End
EndIf
IfNotIsUserThen‘如果没有此用户,显示提示信息
MsgBox"无此用户,请重新登录"
Text1.Text=""
Text1.SetFocus
EndIf
Data1.Recordset.MoveFirst
EndSub
PrivateSubCommand2_Click()
End‘退出
EndSub
4信息管理窗体
信息管理窗体界面如图4-1所示。
(1)设计菜单
打开窗体编辑器,按表4-2所示对每一个菜单输入标题,名称和选择相应的
快捷键。
当完成所有的输入工作后,菜单设计对话框如图4-3所示,单击“确定”按钮,
就完成了菜单的编辑工作。
(2)为事件过程编写代码
在菜单建立好之后,还需要编写相应的事件过程。
图4-1系统界面
表4-2菜单结构
标题
名称
快捷键
标题
名称
快捷键
数据操作
SJcz
用户管理
yhgljm
Ctrl+G
数据处理
SJcl
Ctrl+N
制作人
zzr
数据查询
SJcx
Ctrl+Q
退出系统
mnuexit
数据统计
sjtj
Ctrl+T
图4-3菜单编辑器
程序如下:
PrivateSubMNUDATA_click()'显示数据窗体
Data.Show
EndSub
PrivateSubMNUEXIT_click()'关闭退出系统
ADORst.Close
DB.Close
UnloadMe
pic.Show
EndSub
PrivateSubMNUPRINT_click()'显示报表
DataEnvironment1.Connection1.ConnectionString="RSGL.mdb"
DataReport1.Show
EndSub
PrivateSubMNUSRCH_click()'显示数据查询窗体
Srch.Show
EndSub
PrivateSubMNUTJ_click()'显示数据统计窗体
Staticfrm.Show
EndSub
PrivateSubtxtj_click()'显示添加数据窗体
pic.Show
EndSub
PrivateSubyhgljm_click()'显示系统界面
yhgl.Show
EndSub
PrivateSubzzr_click()'显示制作人界面
pic.Show
EndSub
5数据处理窗体
数据处理窗体如图5-1所示。
在此窗体中可对职工的信息进行编辑修改和删除操作。
图5-1职工信息处理窗体
在通用段中定义职工信息
SubshowInfo()
Text1.Text=ADORst.Fields("职工编号")
Text2.Text=ADORst.Fields("职工姓名")
Text3.Text=ADORst.Fields("职工年龄")
Text4.Text=ADORst.Fields("职工性别")
Text5.Text=ADORst.Fields("婚姻状况")
Text6.Text=ADORst.Fields("工作时间")
Text7.Text=ADORst.Fields("技术职称")
Text8.Text=ADORst.Fields("所在部门")
Text9.Text=ADORst.Fields("基本工资")
EndSub
OptionExplicit
DimmodeAstring
SubNoEdit()
Text1.Locked=True
Text2.Locked=True
Text3.Locked=True
Text4.Locked=True
Text5.Locked=True
Text6.Locked=True
Text7.Locked=True
Text8.Locked=True
Text9.Locked=True
EndSub
PrivateSubCommand1_Click()
mode="add"
Adodc1.Recordset.AddNew
CallCaneEdit
EndSub
PrivateSubCommand2_Click()
mode="modify"
CallCaneEdit
EndSub
PrivateSubCommand3_Click()
DimdelAsInteger
'正在添加或修改的记录不能删除
Ifmode="add"Or"modify"Then
MsgBox"不能删除”"
ExitSub
EndIf
del=MsgBox("确定删除吗?
",vbOKCancel,"警告")
Ifdel<>1ThenExitSub'单击取消按钮,不作任何处理
Adodc1.Recordset.Delete
Adodc1.Recordset.MoveNext
IfAdodc1.Recordset.EOFThenAdodc1.Recordset.MoveLast
CallNoEdit
mode="view"
EndSub
PrivateSubCommand4_Click()
Ifmode="add"Ormode="modify"ThenAdodc1.Recordset.Update
UnloadMe
EndSub
PrivateSubCommand5_Click()
Ifmode="add"Ormode="modify"Then
IfText1.Text=""OrText2.Text=""OrText3.Text=""OrText4.Text=""OrText5.Text=""OrText6.Text=""OrText7.Text=""OrText8.Text=""OrText9.Text=""Then
MsgBox"请输入所有要求的数据",,"输入错误"
EndIf
CallNoEdit
mode="view"
EndIf
Adodc1.Recordset.MoveFirst
'callshowinfo
Command5.Enabled=False
Command6.Enabled=False
Command7.Enabled=True
Command8.Enabled=True
EndSub
PrivateSubCommand6_Click()
Ifmode="add"Ormode="modify"Then
IfText1.Text=""OrText2.Text=""OrText3.Text=""OrText4.Text=""OrText5.Text=""OrText6.Text=""OrText7.Text=""OrText8.Text=""OrText9.Text=""Then
MsgBox"请输入所有数据",,"输入错误"
ExitSub
EndIf
CallNoEdit
mode="view"
EndIf
IfNotAdodc1.Recordset.EOFThen
Adodc1.Recordset.MovePrevious
IfAdodc1.Recordset.EOFThen
Adodc1.Recordset.MoveFirst
Command5.Enabled=False
Command6.Enabled=False
EndIf
Else
Adodc1.Recordset.MoveFirst
Command5.Enabled=False
Command6.Enabled=False
EndIf
Command7.Enabled=True
Command8.Enabled=True
EndSub
PrivateSubCommand7_Click()
'=====================================================================
'按下”下一个"按钮,判断是否"添加"或者“修改”状态
'如果是不能有空数据,否则,提示错误并退出本程序
'如果操作正确,则设置控件不可编辑
'显示下一条记录,并进行相应处理。
'=====================================================================
Ifmode="add"Ormode="modify"Then
'如果单击了“添加”或修改判断数据是否完整
IfText1.Text=""OrText2.Text=""OrText3.Text=""OrText4.Text=""OrText5.Text=""OrText6.Text=""OrText7.Text=""OrText8.Text=""OrText9.Text=""Then
MsgBox"请输入所有的要求的数据",,"输入错误"
ExitSub
EndIf
CallNoEdit'设置其他控件不可编辑
mode="view"
EndIf
IfNotAdodc1.Recordset.EOFThen'移动记录指针,并设置相应按钮的状态
Adodc1.Recordset.MoveNext
'如果移动指针到文件尾,显示最后一条记录,并
'设置”下一个“和末记录”按钮不可用
IfAdodc1.Recordset.EOFThen
Adodc1.Recordset.MoveLast
Command7.Enabled=False
Command8.Enabled=False
EndIf
Else
'如果当前为文件为,显示最后一条记录,并
'设置“下一个”和末记录“按钮不可用
Adodc1.Recordset.MoveLast
Command7.Enabled=False
Command8.Enabled=False
EndIf
'callshowinfo
Command5.Enabled=True
Command6.Enabled=True
EndSub
PrivateSubCommand8_Click()
Ifmode="add"Ormode="modify"Then
IfText1.Text=""OrText2.Text=""OrText3.Text=""OrText4.Text=""OrText5.Text=""OrText6.Text=""OrText7.Text=""OrText8.Text=""OrText9.Text=""Then
MsgBox"请输入所有要求的数据",,"输入错误"
ExitSub
EndIf
CallNoEdit
mode="view"
EndIf
Command5.Enabled=True
Command6.Enabled=True
Command7.Enabled=False
Command8.Enabled=False
Adodc1.Recordset.MoveLast
'callshowinfo
EndSub
PrivateSubForm_Load()
SetADORst=NewRecordset
ADORst.open"select*fromemp",DB,adOpenStatic,adLockOptimistic
ADORst.MoveFirst
CallNoEdit
EndSub
6信息查询
信息查询窗体可根据选定字段的表达式进行查询。
信息查询窗体界面如图6-1所示
图6-1信息查询窗体
PrivateSubCommand1_Click()
'====================================================================
'单击啊“添加”按钮,将设置的条件写入列表框中
'如果选取的查询字段为日期型,在数据两侧加“#”
'如果选择的查询字段位字符型,在数据两侧加引号
'如果选择的查询字段为数值型,不对数据记性特别处理
'=====================================================================
DimSQLSAsString
Dimand_orAsString
and_or=""
IfCombo1.Text="工作时间"Then'日期型字段
SQLS=Combo1.Text&""&Combo2.Text&" "&Trim(Text1.Text)&"#"
ElseIfCombo1.Text="职工年龄"OrCombo1.Text="基本工资"Then'数值型字段
SQLS=Combo1.Text&""&Combo2.Text&Trim(Text1.Text)
Else'字符型字段
SQLS=Combo1.Text&""&Combo2.Text&"'"&Trim(Text1.Text)&"'"
EndIf
'如果列表中已有内容,添加的条件字符串应该前有and或者or
IfList1.ListCount>0Then
IfOption1.ValueThenand_or="and"
IfOption2.ValueThenand_or="or"
EndIf
List1.AddItemand_or&SQLS
Option1.Visible=True
Option2.Visible=True
Option1.Value=True
EndSub
PrivateSubCommand2_Click()
'=====================================================================
'单击“删除”按钮,删除选定行
'如果列表框中还有内容,取消第一行的and或or字符
'=====================================================================
IfList1.ListIndex<0Then'没有选定被删除项
MsgBox"请先选择被删除项",,"删除查询条件"
ExitSub
Else
List1.RemoveItemList1.ListIndex'删除选定项目
'如果列表框中还有项目,使第一项没有and/or
IfList1.ListCount>0Then
List1.List(0)=Space(5)+Mid(List1.List(0),6)
List1.ListIndex=0
EndIf
EndIf
EndSub
PrivateSubCommand3_Click()
'单击”清除“按钮,清除列表框中所有内容
List1.Clea