SQL+vb课程设计工资管理系统.docx
- 文档编号:9984163
- 上传时间:2023-05-22
- 格式:DOCX
- 页数:18
- 大小:339.28KB
SQL+vb课程设计工资管理系统.docx
《SQL+vb课程设计工资管理系统.docx》由会员分享,可在线阅读,更多相关《SQL+vb课程设计工资管理系统.docx(18页珍藏版)》请在冰点文库上搜索。
SQL+vb课程设计工资管理系统
课程设计报告
课程设计题目:
工资管理系统
学生姓名:
专业:
班级:
指导教师:
2011年12月17日
姓名:
学号:
实验时间:
12月14日实验地点:
一、课程设计题目:
工资管理系统
二、课程设计目的:
本次课程设计的主要目的是综合运用所学的数据库与VB知识解决一个比较实际的简单问题,侧重对数据库连接、查询等相关内容的综合应用,使同学们能进一步熟悉掌握数据库的基本使用方法,进一步提升自己的编程能力并逐步培养编程思维,进而不断提高同学们解决问题的能力,并为以后的语言学习打下良好的基础。
三、课程设计要求:
1.独立完成;
2.此次课程设计在规定的时间必须在实验室完成,不得以任何理由在其他地点进行;
3.每个人需按照选题规则确定好自己的题目(注意不是多人完成一题,每人独立完成一题),不得以任何理由选择其他的题目,当然在完成自己的题目之后根据个人兴趣可以继续选做其他的题目;
4.课程设计完成后严格按照报告格式撰写课程设计报告,并于结束后的第三天上交到学习委员统一交给老师;
5.课程设计的成绩由两部分组成:
程序检查成绩(40%,每个功能占程序分的20%)+报告检查成绩(40%)+平时考核(20%)
四、试验要求
1)员工基本信息的管理功能。
2)单位员工变动、奖惩情况的管理功能。
3)工资的计算、修改功能。
4)查询统计功能。
5)报表打印功能。
6)具有数据备份和数据恢复功能。
五、试验过程
1.数据库的设计
本系统的数据库是SQL数据库,在SQL环境下创建数据库工资.mdb文件。
该数据库包括员工信息表、工资标准表、其他工资标准表、用户表用于纪录员工的基本信息数据库表结构如下所示:
字段名
类型
大小
允许空
员工编号
varchar
8
Notnull
姓名
varchar
10
Notnull
性别
varchar
2
Notnull
职务
Varchar
8
Notnull
出生年月
datetime
Notnull
员工头像
image
员工信息表
字段名
类型
大小
允许空
员工编号
varchar
8
月份
int
4
津贴
money
8
NULL
奖金
Money
8
NULL
扣保险
Money
8
NULL
扣考勤
Money
8
NULL
扣其他
Money
8
NULL
其他工资标准表
字段名
类型
大小
允许空
职务
varchar
8
Notnull
基本工资
money
8
Notnull
工资标准表
字段名
类型
大小
允许空
用户名
char
10
Notnull
口令
char
10
Notnull
用户表
2.主要内容
登录窗体
登录窗体
设计代码:
OptionExplicit
PrivateFunctionSelectsql(SQLAsString)AsADODB.Recordset'返回ADODB.Recordset对象
DimConnStrAsString
DimConnAsADODB.Connection
DimrsAsADODB.Recordset
Setrs=NewADODB.Recordset
SetConn=NewADODB.Connection
'OnErrorGoToMyErr:
ConnStr="Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=true;InitialCatalog=工资;DataSource=(local)"'这是连接SQL数据库的语句
Conn.OpenConnStr
rs.CursorLocation=adUseClient
rs.OpenTrim$(SQL),Conn,adOpenDynamic,adLockOptimistic
SetSelectsql=rs
'ExitFunction
'MyErr:
'Setrs=Nothing
'SetConn=Nothing'释放相关的系统资源
'MsgBoxErr.Description,vbInformation,"系统提示"'显示出错信息
EndFunction
PrivateSubCommand3_Click()
UnloadMe
EndSub
PrivateSubForm_Load()
DimSQLAsString
DimrsAsADODB.Recordset
DimXAsLong
OnErrorGoToErr_box
SQL="select*from用户表"
Setrs=Selectsql(SQL)
Ifrs.RecordCount>0Then
rs.MoveFirst
ForX=1Tors.RecordCount
Combo1.AddItemrs.Fields("用户名").Value
rs.MoveNext
NextX
Combo1.ListIndex=0
EndIf
rs.Close
ExitSub
Err_box:
EndSub
PrivateSubCommand1_Click()
DimSQLAsString
DimrsAsADODB.Recordset
IfText1.Text=""Then
MsgBox"请输入口令!
",16
Text1.SetFocus
ExitSub
EndIf
IfCombo1.Text=""Then
MsgBox"请选择登录用户!
",16
Combo1.SetFocus
ExitSub
EndIf
SQL="SELECT*FROM用户表WHERE用户名='"&Combo1.Text&"'AND口令='"&Text1.Text&"'"
Setrs=Selectsql(SQL)
Ifrs.RecordCount>0Then
form2.Show'想要打开的主窗体
MsgBox"登录成功!
",64,"提示"
UnloadMe
Else
MsgBox"口令不对,请重新输入!
",16,"提示"
Text1.SetFocus
EndIf
EndSub
主控界面
主控界面
设计过程:
所有功能都在菜单中打开来实现,在最下面添加了工具栏,来显示时间,操作员,状态等信息。
设计代码:
PrivateSubrechaxun_Click()
form3.Show
EndSub
PrivateSubreluru_Click()
form3.Show
EndSub
PrivateSubcygl2_Click()
form5.Show
EndSub
PrivateSubcyxx_Click()
form3.Show
EndSub
PrivateSubForm_Load()
Label2.Caption=Time
EndSub
PrivateSubgzcx_Click()
Form4.Show
EndSub
PrivateSubImage1_Click()
EndSub
PrivateSubjcqk_Click()
form6.Show
EndSub
PrivateSubrexiugai_Click()
form6.Show
EndSub
PrivateSubrescbb_Click()
Form4.Show
MsgBox"请先查询,再点击生成报表按钮",,"提示窗口"
EndSub
PrivateSubsjbf_Click()
Form7.Show
EndSub
PrivateSubsjhf_Click()
Form7.Show
EndSub
PrivateSubtjcy_Click()
form5.Show
EndSub
成员管理
成员浏览
成员浏览
设计过程:
用控件可以实现档案的浏览,在此窗体用户可以浏览员工信息,此窗体与数据轮中的员工信息表进行连接。
设计代码:
PrivateSubCommand4_Click()
UnloadMe
EndSub
成员管理
成员管理
设计过程:
用于档案的登记,此窗体和档案浏览窗体中的数据表进行了连接,可以直接进行添加,删除,修改等。
设计代码:
PrivateSubCommand1_Click()
Adodc1.Recordset.AddNew
EndSub
PrivateSubCommand2_Click()
Adodc1.Recordset.Update
EndSub
PrivateSubCommand3_Click()
Adodc1.Recordset.Delete
EndSub
PrivateSubCommand4_Click()
Dimstrb()AsByte
CommonDialog1.ShowOpen
OpenCommonDialog1.FileNameForBinaryAs#1
f1=LOF
(1)
ReDimstrb(f1)
Get#1,,strb
Adodc1.Recordset.Fields("员工头像").AppendChunkstrb
Close#1
Image1.Picture=LoadPicture(CommonDialog1.FileName)
EndSub
PrivateSubForm_Load()
EndSub
奖惩信息:
员工奖惩情况
设计过程:
用户可以查找各月份的扣除以及奖励状况。
设计代码:
PrivateSubCommand1_Click()
UnloadMe
EndSub
PrivateSubCommand2_Click()
Adodc1.Recordset.Update
EndSub
PrivateSubText1_Change()
Adodc1.RecordSource="select*from其他工资标准where月份='"&Text1&"'"
Adodc1.Refresh
DataGrid1.Refresh
EndSub
工资查询:
工资查询
设计过程:
通过在姓名栏和月份栏输入信息,可以快速查找所需查询人的工资情况;并将查询结果生成execl表,方便用户打印及携带。
设计代码:
PrivateSubCommand1_Click()
DimiAsInteger,rAsInteger,cAsInteger
DimnewxlsAsExcel.Application
DimnewbookAsExcel.Workbook
DimnewsheetAsExcel.Worksheet
Setnewxls=CreateObject("Excel.Application")'创建excel应用程序,打开excel
Setnewbook=newxls.Workbooks.Add'创建工作簿
Setnewsheet=newbook.Worksheets
(1)'创建工作表
IfAdodc1.Recordset.RecordCount>0Then
Fori=0ToDataGrid1.Columns.Count-1
newsheet.Cells(1,i+1)=DataGrid1.Columns(i).Caption
Nexti
'指定表格内容
Adodc1.Recordset.MoveFirst
DoUntilAdodc1.Recordset.EOF
r=Adodc1.Recordset.AbsolutePosition
Forc=0ToDataGrid1.Columns.Count-1
DataGrid1.Col=c
newsheet.Cells(r+1,c+1)=DataGrid1.Columns(c)
Nextc
Adodc1.Recordset.MoveNext
Loop
DimmyvalAsLong
DimmystrAsString
myval=MsgBox("是否保存该Excel表?
",vbYesNo,"提示窗口")
Ifmyval=vbYesThen
mystr=InputBox("请输入文件名称","输入窗口")
IfLen(mystr)=0Then
MsgBox"系统不允许文件名称为空!
",,"提示窗口"
ExitSub
EndIf
newsheet.SaveAs"d:
\"&mystr&".xls"
MsgBox"Excel文件保存成功,位置:
d:
\"&mystr&".xls",,"提示窗口"
newxls.Quit
EndIf
EndIf
EndSub
PrivateSubCommand2_Click()
UnloadMe
EndSub
PrivateSubForm_Load()
EndSub
PrivateSubText1_Change()
Adodc1.RecordSource="selecta.员工编号,姓名,月份,基本工资,津贴+奖金+扣保险+扣考勤+扣其他as奖惩总额,基本工资+津贴+奖金+扣保险+扣考勤+扣其他as实发工资from员工信息表a,工资标准b,其他工资标准cwherea.职务=b.职务anda.员工编号=c.员工编号and姓名like'"&Text2&"%'andc.月份='"&Text1&"'"
Adodc1.Refresh
DataGrid1.Refresh
EndSub
PrivateSubText2_Change()
Adodc1.RecordSource="selecta.员工编号,姓名,月份,基本工资,津贴+奖金+扣保险+扣考勤+扣其他as奖惩总额,基本工资+津贴+奖金+扣保险+扣考勤+扣其他as实发工资from员工信息表a,工资标准b,其他工资标准cwherea.职务=b.职务anda.员工编号=c.员工编号and姓名like'"&Text2&"%'andc.月份='"&Text1&"'"
Adodc1.Refresh
DataGrid1.Refresh
EndSub
数据备份及恢复:
数据备份及恢复
设计过程:
用户可以将数据库进行完全备份和差异备份,并且在操作不当时可以进行恢复。
设计代码:
PublicCnAsADODB.Connection
PrivateSubCommand1_Click()
Cn.Execute"backupdatabase工资todisk='d:
\工资完全备份.bak'withname='工资backupall',description='FullBackupOfpubs'"
MsgBox"数据完全备份已经完成",vbOKOnly+vbInformation,"提醒"
EndSub
PrivateSubCommand2_Click()
Cn.Execute"backupdatabase工资todisk='d:
\工资差异备份.bak'withdifferential,noinit,name='工资backupdif',description='DifferentialBackupOf工资'"
MsgBox"数据差异备份已经完成",vbOKOnly+vbInformation,"提醒"
EndSub
PrivateSubCommand3_Click()
Cn.Execute"restoredatabase工资fromdisk='d:
\工资完全备份.bak'withFILE=1"
MsgBox"数据恢复已经完成",vbOKOnly+vbInformation,"提醒"
EndSub
PrivateSubCommand4_Click()
Cn.Execute"restoredatabase工资fromdisk='d:
\工资差异备份.bak'withFILE=1"
MsgBox"数据恢复已经完成",vbOKOnly+vbInformation,"提醒"
EndSub
PrivateSubForm_Load()
SetCn=NewADODB.Connection
strcon="Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=true;InitialCatalog=工资;DataSource=(local);"+_
"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=-2147467259Then
MsgBox"网络不通或服务器未开,请确认后再试",vbOKOnly+vbInformation,"提醒"
UnloadMe
ExitSub
ExitFor
EndIf
Nexti
EndIf
EndSub
3、设计体会
在数据库课程开课之前我就下决心要学好这一门课,因为这是我的专业课,我一开始就谨慎小心,争取每一个细节都做得很好。
现在终于是完成了,我的设计体会如下:
小心谨慎是关键,因为做程序关键就是写代码,每一个字母都要很小心输入,若是不小心错了一个,就会带来庞大的“查错工程”,不过从我检查错误当中也学会了一些检查的方法,比如设置中断点,可以观查每一个变量的当前值,很有效的。
小心是一个方面,另一个是怎么样让程序最人性化,并且保持较简洁的程序代码,通俗说就是事半功倍。
有很多时间我是花在了调试程序方面,一部分是在找错误,还有就是怎么用最简练的代码实现当前的作用。
其中绝大多数都是自己写的代码,只有在自己不会的时候才借鉴了指导老师发下来的那个示例作品的代码。
我的程序大多数是我自己写的,但是自己的知识和水平都十分有限,所以会经常去查看书或者在网上寻找资料,通过看书、看资料,我改进了自己的不足,也学会的很多新的作程序方法,都是十分有用的。
在一个体会就是做程序要有对全局和面的分析能力,老师告诉我好多设计中不曾想到的东西,比如数据表建立的不完美,用户权限应该分开等。
做什么事都是一样的,具体体现在了这次的数据库课程设计上来,让我学到了很多东西。
就像要完成一个很大的工作,要先从小的部分做起,不能急于求成,细心谨慎才是关键,坚持不懈,最后再把这些小的窗体在连接起来,就构成了一个整体。
只有实践真正动手做了才会真正了解,在不断的学习和实践中体会到更多的经验。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL vb 课程设计 工资管理 系统