VB+SQL 工资管理系统设计报告.docx
《VB+SQL 工资管理系统设计报告.docx》由会员分享,可在线阅读,更多相关《VB+SQL 工资管理系统设计报告.docx(21页珍藏版)》请在冰点文库上搜索。
VB+SQL工资管理系统设计报告
一、问题描述:
设计一个工资管理系统,使其具有以下功能:
1)员工基本信息的管理功能。
2)单位员工变动、奖惩情况的管理功能。
3)工资的计算、修改功能。
4)查询统计功能。
5)报表打印功能。
6)具有数据备份和数据恢复功能。
二、系统总体设计:
1)设计一个登录界面,使该系统具有一定的安全性和通用性,对应的,在数据库里建立一个登录界面表。
2)在数据库内设计三个信息表,分别是员工情况表,员工部门表,工资表。
3)在VB界面内设计窗体,并书写代码,使其与数据库连接起来,并具有相应功能。
三、数据库设计:
(由队友负责)
四、详细设计:
1)设计VB登录界面
图像如下:
设置身份为管理员,成功登录
相应代码为:
SetConn=NewADODB.Connection
'OnErrorGoToMyErr:
ConnStr="Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=工资管理系统;DataSource=XGJYJ2OKZYWHIWB"'这是连接SQL数据库的语句
Conn.OpenConnStr
rs.CursorLocation=adUseClient
rs.OpenTrim$(SQL),Conn,adOpenDynamic,adLockOptimistic
SetSelectsql=rs
'ExitFunction
'MyErr:
'Setrs=Nothing
'SetConn=Nothing'释放相关的系统资源
'MsgBoxErr.Description,vbInformation,"系统提示"'显示出错信息
EndFunction
PrivateSubCommand1_Click()
DimSQLAsString
DimrsAsADODB.Recordset
IfText1.Text=""Then
MsgBox"请输入口令!
",16
Text1.SetFocus
ExitSub
EndIf
SQL="SELECT*FROM系统登录WHERE用户名='"&Text1.Text&"'AND密码='"&Text2.Text&"'and身份='"&Combo1.Text&"'"'objcn,adOpenStatic,adLockOptimistic
Setrs=Selectsql(SQL)
Ifrs.RecordCount>0Then
Form2.Show'想要打开的主窗体
MsgBox"恭喜兄弟,登录成功!
",64,"提示"
UnloadMe
Else
MsgBox"口令不对,请重新输入!
",16,"提示"
Text1.Text=""
Text2.Text=""
Combo1.Text=""
Text1.SetFocus
EndIf
EndSub
PrivateSubForm_Load()
EndSub
PrivateSubText2_Change()
Text2.PasswordChar="*"
EndSub
将出现此界面,表示成功登录
2)登录成功后,同时出现基本功能界面
3)点击员工信息管理按钮,将出现员工信息表,代码如下:
PrivateSubCommand1_Click()
Form2.Hide
Form3.Show
EndSub
员工信息表将实现以下功能:
1)员工基本信息的展览
2)员工基本信息的添加、删除、修改
3)增加了一个adodc1控件,通过改变各控件的属性,达到VB与数据库连接的目的,具体操作见VB书最后一章。
4)设计了一个datagrid控件,使所以信息以表的信息清楚的展示,如果基本信息有什么变动,那可以在控件里得到结果。
该界面的代码如下:
PrivateSubCommand1_Click()
Adodc1.Recordset.AddNew
EndSub
PrivateSubCommand2_Click()
Form2.Show
UnloadMe
EndSub
PrivateSubCommand3_Click()
Adodc1.Recordset("员工编号")=Text1.Text
Adodc1.Recordset("姓名")=Text5.Text
Adodc1.Recordset("性别")=Text4.Text
Adodc1.Recordset("出生年月")=Text3.Text
Adodc1.Recordset("部门编号")=Text2.Text
Form4.Adodc1.Recordset("员工编号")=Text1.Text
Form5.Adodc1.Recordset("员工编号")=Text1.Text
Form6.Adodc1.Recordset("员工编号")=Text1.Text
'Form4.Adodc1.Recordset("部门编号")=Text2.Text
Adodc1.Recordset.Update
MsgBox("修改成功")
EndSub
PrivateSubCommand4_Click()
IfMsgBox("确定删除当前记录?
",vbQuestion+vbYesNo,"删除?
")=vbYesThen
Adodc1.Recordset.Delete
Adodc1.Recordset.MoveNext
IfAdodc1.Recordset.EOFThenAdodc1.Recordset.MoveLast
EndIf
EndSub
4)点击单位员工变动管理,将出现员工变动管理界面,代码如下:
PrivateSubCommand2_Click()
Form2.Hide
Form4.Show
EndSub
单位员工变动管理界面将实现以下功能:
1)员工部门表的展览
2)员工部门表的添加、删除、修改,解决了员工工作变动的问题。
3)增加了一个adodc1控件,通过改变各控件的属性,达到VB与数据库连接的目的,具体操作见VB书最后一章。
4)设计了一个datagrid控件,使所以信息以表的信息清楚的展示,如果基本信息有什么变动,那可以在控件里得到结果。
单位员工变动管理界面代码如下:
PrivateSubCommand1_Click()
Adodc1.Recordset.AddNew
EndSub
PrivateSubCommand2_Click()
IfMsgBox("确定删除当前记录?
",vbQuestion+vbYesNo,"删除?
")=vbYesThen
Adodc1.Recordset.Delete
Adodc1.Recordset.MoveNext
IfAdodc1.Recordset.EOFThenAdodc1.Recordset.MoveLast
EndIf
EndSub
PrivateSubCommand3_Click()
Adodc1.Recordset("员工编号")=Text1.Text
Adodc1.Recordset("部门编号")=Text2.Text
Adodc1.Recordset("部门名")=Text3.Text
Adodc1.Recordset("负责人")=Text4.Text
Form3.Adodc1.Recordset("员工编号")=Text1.Text
Form3.Adodc1.Recordset("部门编号")=Text2.Text
Adodc1.Recordset.Update
MsgBox("修改成功")
EndSub
PrivateSubCommand4_Click()
Form2.Show
UnloadMe
EndSub
5)单击奖惩情况管理,将出现工资情况界面,相应代码如下:
PrivateSubCommand3_Click()
Form2.Hide
Form5.Show
EndSub
奖惩情况管理界面将实现以下功能:
1)工资表的展览
2)工资表的添加、删除、修改,解决了员工奖惩情况的问题。
3)增加了一个adodc1控件,通过改变各控件的属性,达到VB与数据库连接的目的,具体操作见VB书最后一章。
4)设计了一个datagrid控件,使所以信息以表的信息清楚的展示,如果基本信息有什么变动,那可以在控件里得到结果。
该界面代码如下:
PrivateSubCommand1_Click()
Adodc1.Recordset.AddNew
EndSub
PrivateSubCommand2_Click()
IfMsgBox("确定删除当前记录?
",vbQuestion+vbYesNo,"删除?
")=vbYesThen
Adodc1.Recordset.Delete
Adodc1.Recordset.MoveNext
IfAdodc1.Recordset.EOFThenAdodc1.Recordset.MoveLast
EndIf
EndSub
PrivateSubCommand3_Click()
Adodc1.Recordset("员工编号")=Text1.Text
Adodc1.Recordset("奖金")=Str(Text2.Text)
Adodc1.Recordset("扣除")=Str(Text3.Text)
Form6.Adodc1.Recordset("员工编号")=Text1.Text
Form6.Adodc1.Recordset("奖金")=Text2.Text
Form6.Adodc1.Recordset("扣除")=Text3.Text
Adodc1.Recordset.Update
MsgBox("修改成功")
EndSub
PrivateSubCommand4_Click()
Form2.Show
UnloadMe
EndSub
6)单击工资的计算、修改按钮,将出现工资的管理界面,相应代码如下:
PrivateSubCommand4_Click()
Form2.Hide
Form6.Show
EndSub
单位员工变动管理界面将实现以下功能:
1)员工工资表的展览
2)员工工资表的总工资计算功能,解决了员工工作变动的问题。
3)增加了一个adodc1控件,通过改变各控件的属性,达到VB与数据库连接的目的,具体操作见VB书最后一章。
4)设计了一个datagrid控件,使所以信息以表的信息清楚的展示,如果基本信息有什么变动,那可以在控件里得到结果
该界面代码如下:
PrivateSubCommand1_Click()
Adodc1.Recordset.AddNew
EndSub
PrivateSubCommand2_Click()
IfMsgBox("确定删除当前记录?
",vbQuestion+vbYesNo,"删除?
")=vbYesThen
Adodc1.Recordset.Delete
Adodc1.Recordset.MoveNext
IfAdodc1.Recordset.EOFThenAdodc1.Recordset.MoveLast
EndIf
EndSub
PrivateSubCommand3_Click()
MsgBox("修改成功")
Adodc1.Recordset("员工编号")=Text1.Text
Adodc1.Recordset("基本工资")=Text2.Text
Adodc1.Recordset("奖金")=Str(Text3.Text)
Adodc1.Recordset("扣除")=Str(Text4.Text)
Adodc1.Recordset.Update
EndSub
PrivateSubCommand4_Click()
Form2.Show
UnloadMe
EndSub
PrivateSubForm_Load()
Text5.Text=Val(Text2.Text)+Val(Text3.Text)-Val(Text4.Text)
EndSub
7、单击查询功能,将出现查询管理部门界面,相应代码如下:
PrivateSubCommand5_Click()
Form2.Hide
Form8.Show
EndSub
查询界面将实现以下功能:
1)将员工所在部门分类
2)将员工按分类进行统计,相应显示
3)增加了两个adodc控件,通过改变各控件的属性,达到VB与数据库连接的目的,具体操作见VB书最后一章。
4)设计了一个datagrid控件,使所以信息以表的信息清楚的展示,如果基本信息有什么变动,那可以在控件里得到结果。
5)增加了一个datalist控件,达到分类的效果。
该界面代码如下:
PrivateSubCommand1_Click()
Form2.Show
UnloadMe
EndSub
PrivateSubDataList1_Click()
Adodc1.RecordSource="select*from员工部门表where部门名='"&DataList1.BoundText&"'"
Adodc1.Refresh
EndSub
PrivateSubForm_Load()
'Dimmpath$,mlink$
'mpath=App.Path
'IfRight(mpath,1)<>"\"Thenmpath=mpath+"\"
'mlink="provider=microsoft.jet.oledb.4.0;"
'mlink=mlink+"datasource="+mpath+"工资管理系统.mdb"
'Adodc1.ConnectionString=mlink
'Adodc1.CommandType=adCmdUnknown
'DataList1.ListField=
Adodc1.RecordSource="select*from员工部门表"
'where部门名='办公室'"
'"&DataList1.BoundText&"'"
Adodc1.Refresh
EndSub
8、单击统计功能,将出现统计功能界面,代码如下:
PrivateSubCommand7_Click()
Form2.Hide
Form7.Show
EndSub
统计功能界面将实现以下功能:
1)将所有员工按性别、年龄、部门分类
2)对不同的分类进行统计并查询
3)增加了一个adodc控件,通过改变各控件的属性,达到VB与数据库连接的目的,具体操作见VB书最后一章。
4)设计了一个datagrid控件,使所以信息以表的信息清楚的展示,如果基本信息有什么变动,那可以在控件里得到结果。
5)增加了一个datalist控件,达到分类的效果。
该界面代码如下:
PrivateSubCommand1_Click()
Adodc1.RecordSource="selectyear(出生年月)as年龄,count(*)as人数from员工情况表groupbyyear(出生年月)"
Adodc1.Refresh
EndSub
PrivateSubCommand2_Click()
Form2.Show
UnloadMe
EndSub
PrivateSubCommand3_Click()
Adodc1.RecordSource="select部门名,count(*)as人数from员工部门表groupby部门名"
Adodc1.Refresh
EndSub
PrivateSubCommand4_Click()
Adodc1.RecordSource="select性别,count(*)as人数from员工情况表groupby性别"
Adodc1.Refresh
EndSub
9、单击数据库备份恢复功能按钮,将出现备份恢复界面,代码如下:
PrivateSubCommand7_Click()
Form2.Hide
Form9.Show
EndSub
单击数据库备份及恢复按钮,将实现数据库备份及恢复功能,界面如下:
代码如下:
PubliccnAsADODB.Connection
PrivateSubCommand1_Click()
cn.Execute"backupdatabase工资管理系统todisk='d:
\工资备份.bak'withname='工资管理系统backupall',description='FullBackupOfpubs'"
MsgBox"数据完全备份已经完成",vbOKOnly+vbInformation,"提醒"
EndSub
PrivateSubCommand2_Click()
cn.Execute"restoredatabase工资管理系统fromdisk='d:
\工资备份.bak'withFILE=1"
MsgBox"数据恢复已经完成",vbOKOnly+vbInformation,"提醒"
EndSub
PrivateSubCommand3_Click()
Form2.Show
UnloadMe
EndSub
PrivateSubForm_Load()
Setcn=NewADODB.Connection
strcon="Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=工资管理系统;DataSource=XGJYJ2OKZYWHIWB;"+_
"useprocedureforprepare=1;autotranslate=true;"+_
"useencryptionfordata=false;tagwithcolumncollationwhenpossible=false"
cn.ConnectionString=strcon
OnErrorResumeNext
cn.Open
Ifcn.Errors.Count>0Then
Fori=0Tocn.Errors.Count-1
Ifcn.Errors(i).Number=-Then
MsgBox"网络不通或服务器未开,请确认后再试",vbOKOnly+vbInformation,"提醒"
UnloadMe
ExitSub
ExitFor
EndIf
Nexti
EndIf
EndSub
10、单击报表打印功能按钮,将实现报表打印功能,代码如下:
PrivateSubCommand8_Click()
CommonDialog1.Action=5
Printer.PrintDataGrid1.Text
EndSub
界面如下:
详细设计结束!
五、课程设计小结及建议:
从此次课程设计中,我们懂得了合作的重要性,我们学会了如何应用VB与数据库连接(adodc),在VB中设计相关界面以达到题目所需要求。
同时,运用datagrid及adodc控件来达到统计分类的效果,运用datagrid及datalist控件来达到查询功能。
虽然在打印报表和数据库恢复功能上并不完善,但是还是从中学到了不少的知识。
我认为,在做实验遇到错误时,最好是自己能将错误找出并将其改正,如果实在不行再找老师,然后再自己琢磨琢磨,这样的话更能提高自己的动手能力及实际操作。
课程设计报告
学生姓名:
********
专业:
计算机科学与技术
学号:
********
指导教师:
********
设计部分:
VB代码设计
2011年**月***日