资源描述
VB+SQL 工资管理系统设计报告
———————————————————————————————— 作者:
———————————————————————————————— 日期:
26
个人收集整理 勿做商业用途
一、问题描述:
设计一个工资管理系统,使其具有以下功能:
1)员工基本信息的管理功能.
2)单位员工变动、奖惩情况的管理功能.
3)工资的计算、修改功能。
4)查询统计功能。
5)报表打印功能。
6)具有数据备份和数据恢复功能。
二、系统总体设计:
1)设计一个登录界面,使该系统具有一定的安全性和通用性,对应的,在数据库里建立一个登录界面表。
2)在数据库内设计三个信息表,分别是员工情况表,员工部门表,工资表。
3)在VB界面内设计窗体,并书写代码,使其与数据库连接起来,并具有相应功能。
三、数据库设计:(由队友负责)
四、详细设计:
1)设计VB登录界面
图像如下:
设置身份为管理员,成功登录
相应代码为:
Set Conn = New ADODB.Connection
’On Error GoTo MyErr:
ConnStr = ”Provider=SQLOLEDB。1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=工资管理系统;Data Source=XGJYJ2OKZYWHIWB” ’这是连接SQL数据库的语句
Conn.Open ConnStr
rs.CursorLocation = adUseClient
rs.Open Trim$(SQL), Conn, adOpenDynamic, adLockOptimistic
Set Selectsql = rs
'Exit Function
'MyErr:
’Set rs = Nothing
’Set Conn = Nothing ’释放相关的系统资源
'MsgBox Err.Description, vbInformation, ”系统提示” ’显示出错信息
End Function
Private Sub Command1_Click()
Dim SQL As String
Dim rs As ADODB。Recordset
If Text1.Text = ”” Then
MsgBox "请输入口令!”, 16
Text1。SetFocus
Exit Sub
End If
SQL = "SELECT * FROM 系统登录 WHERE 用户名 ='" & Text1.Text & "' AND 密码=’” & Text2.Text & "' and 身份='” & Combo1。Text & ”’” ’ objcn, adOpenStatic, adLockOptimistic
Set rs = Selectsql(SQL)
If rs。RecordCount 〉 0 Then
Form2.Show ’想要打开的主窗体
MsgBox "恭喜兄弟,登录成功!”, 64, "提示"
Unload Me
Else
MsgBox ”口令不对,请重新输入!”, 16, ”提示”
Text1。Text = "”
Text2.Text = ""
Combo1.Text = ”"
Text1。SetFocus
End If
End Sub
Private Sub Form_Load()
End Sub
Private Sub Text2_Change()
Text2.PasswordChar = "*”
End Sub
将出现此界面,表示成功登录
2)登录成功后,同时出现基本功能界面
3)点击员工信息管理按钮,将出现员工信息表,代码如下:
Private Sub Command1_Click()
Form2.Hide
Form3。Show
End Sub
员工信息表将实现以下功能:
1) 员工基本信息的展览
2) 员工基本信息的添加、删除、修改
3) 增加了一个adodc1控件,通过改变各控件的属性,达到VB与数据库连接的目的,具体操作见VB书最后一章。
4) 设计了一个datagrid控件,使所以信息以表的信息清楚的展示,如果基本信息有什么变动,那可以在控件里得到结果。
该界面的代码如下:
Private Sub Command1_Click()
Adodc1.Recordset。AddNew
End Sub
Private Sub Command2_Click()
Form2.Show
Unload Me
End Sub
Private Sub Command3_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 ("修改成功")
End Sub
Private Sub Command4_Click()
If MsgBox(”确定删除当前记录?”, vbQuestion + vbYesNo, "删除?") = vbYes Then
Adodc1.Recordset.Delete
Adodc1.Recordset.MoveNext
If Adodc1.Recordset.EOF Then Adodc1.Recordset.MoveLast
End If
End Sub
4) 点击单位员工变动管理,将出现员工变动管理界面,代码如下:
Private Sub Command2_Click()
Form2.Hide
Form4。Show
End Sub
单位员工变动管理界面将实现以下功能:
1) 员工部门表的展览
2) 员工部门表的添加、删除、修改,解决了员工工作变动的问题。
3) 增加了一个adodc1控件,通过改变各控件的属性,达到VB与数据库连接的目的,具体操作见VB书最后一章.
4) 设计了一个datagrid控件,使所以信息以表的信息清楚的展示,如果基本信息有什么变动,那可以在控件里得到结果.
单位员工变动管理界面代码如下:
Private Sub Command1_Click()
Adodc1。Recordset。AddNew
End Sub
Private Sub Command2_Click()
If MsgBox(”确定删除当前记录?", vbQuestion + vbYesNo, ”删除?”) = vbYes Then
Adodc1。Recordset.Delete
Adodc1。Recordset。MoveNext
If Adodc1.Recordset.EOF Then Adodc1。Recordset.MoveLast
End If
End Sub
Private Sub Command3_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 ("修改成功”)
End Sub
Private Sub Command4_Click()
Form2。Show
Unload Me
End Sub
5) 单击奖惩情况管理,将出现工资情况界面,相应代码如下:
Private Sub Command3_Click()
Form2.Hide
Form5。Show
End Sub
奖惩情况管理界面将实现以下功能:
1) 工资表的展览
2) 工资表的添加、删除、修改,解决了员工奖惩情况的问题.
3) 增加了一个adodc1控件,通过改变各控件的属性,达到VB与数据库连接的目的,具体操作见VB书最后一章。
4) 设计了一个datagrid控件,使所以信息以表的信息清楚的展示,如果基本信息有什么变动,那可以在控件里得到结果.
该界面代码如下:
Private Sub Command1_Click()
Adodc1。Recordset。AddNew
End Sub
Private Sub Command2_Click()
If MsgBox("确定删除当前记录?", vbQuestion + vbYesNo, ”删除?”) = vbYes Then
Adodc1。Recordset。Delete
Adodc1。Recordset.MoveNext
If Adodc1。Recordset。EOF Then Adodc1.Recordset.MoveLast
End If
End Sub
Private Sub Command3_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 ("修改成功”)
End Sub
Private Sub Command4_Click()
Form2。Show
Unload Me
End Sub
6)单击工资的计算、修改按钮,将出现工资的管理界面,相应代码如下:
Private Sub Command4_Click()
Form2。Hide
Form6。Show
End Sub
单位员工变动管理界面将实现以下功能:
1)员工工资表的展览
2)员工工资表的总工资计算功能,解决了员工工作变动的问题。
3)增加了一个adodc1控件,通过改变各控件的属性,达到VB与数据库连接的目的,具体操作见VB书最后一章。
4)设计了一个datagrid控件,使所以信息以表的信息清楚的展示,如果基本信息有什么变动,那可以在控件里得到结果
该界面代码如下:
Private Sub Command1_Click()
Adodc1.Recordset.AddNew
End Sub
Private Sub Command2_Click()
If MsgBox("确定删除当前记录?”, vbQuestion + vbYesNo, ”删除?”) = vbYes Then
Adodc1.Recordset.Delete
Adodc1.Recordset.MoveNext
If Adodc1.Recordset。EOF Then Adodc1。Recordset.MoveLast
End If
End Sub
Private Sub Command3_Click()
MsgBox (”修改成功”)
Adodc1。Recordset("员工编号") = Text1.Text
Adodc1。Recordset("基本工资”) = Text2.Text
Adodc1。Recordset("奖金”) = Str(Text3。Text)
Adodc1.Recordset("扣除”) = Str(Text4.Text)
Adodc1。Recordset。Update
End Sub
Private Sub Command4_Click()
Form2。Show
Unload Me
End Sub
Private Sub Form_Load()
Text5。Text = Val(Text2。Text) + Val(Text3.Text) - Val(Text4.Text)
End Sub
7、 单击查询功能,将出现查询管理部门界面,相应代码如下:
Private Sub Command5_Click()
Form2。Hide
Form8.Show
End Sub
查询界面将实现以下功能:
1)将员工所在部门分类
2)将员工按分类进行统计,相应显示
3)增加了两个adodc控件,通过改变各控件的属性,达到VB与数据库连接的目的,具体操作见VB书最后一章。
4)设计了一个datagrid控件,使所以信息以表的信息清楚的展示,如果基本信息有什么变动,那可以在控件里得到结果。
5)增加了一个datalist控件,达到分类的效果。
该界面代码如下:
Private Sub Command1_Click()
Form2.Show
Unload Me
End Sub
Private Sub DataList1_Click()
Adodc1.RecordSource = "select * from 员工部门表 where 部门名= ’” & DataList1.BoundText & " ’”
Adodc1。Refresh
End Sub
Private Sub Form_Load()
'Dim mpath$, mlink$
'mpath = App.Path
’If Right(mpath, 1) 〈〉 ”\" Then mpath = mpath + ”\”
'mlink = "provider=microsoft。jet。oledb。4。0;"
'mlink = mlink + ”data source=” + mpath + "工资管理系统。mdb"
’Adodc1。ConnectionString = mlink
’Adodc1。CommandType = adCmdUnknown
' DataList1.ListField=
Adodc1.RecordSource = "select * from 员工部门表”
’ where 部门名= '办公室’"
'” & DataList1。BoundText& ”'”
Adodc1。Refresh
End Sub
8、 单击统计功能,将出现统计功能界面,代码如下:
Private Sub Command7_Click()
Form2。Hide
Form7。Show
End Sub
统计功能界面将实现以下功能:
1) 将所有员工按性别、年龄、部门分类
2) 对不同的分类进行统计并查询
3)增加了一个adodc控件,通过改变各控件的属性,达到VB与数据库连接的目的,具体操作见VB书最后一章。
4)设计了一个datagrid控件,使所以信息以表的信息清楚的展示,如果基本信息有什么变动,那可以在控件里得到结果。
5)增加了一个datalist控件,达到分类的效果。
该界面代码如下:
Private Sub Command1_Click()
Adodc1.RecordSource = "select year(出生年月)as 年龄,count(*) as 人数 from 员工情况表 group by year(出生年月)"
Adodc1。Refresh
End Sub
Private Sub Command2_Click()
Form2。Show
Unload Me
End Sub
Private Sub Command3_Click()
Adodc1.RecordSource = "select 部门名,count(*) as 人数 from 员工部门表 group by 部门名"
Adodc1。Refresh
End Sub
Private Sub Command4_Click()
Adodc1.RecordSource = "select 性别,count(*) as 人数 from 员工情况表 group by 性别"
Adodc1.Refresh
End Sub
9、 单击数据库备份恢复功能按钮,将出现备份恢复界面,代码如下:
Private Sub Command7_Click()
Form2。Hide
Form9.Show
End Sub
单击数据库备份及恢复按钮,将实现数据库备份及恢复功能,界面如下:
代码如下:
Public cn As ADODB.Connection
Private Sub Command1_Click()
cn.Execute ”backup database 工资管理系统 to disk=’d:\工资备份.bak’ with name='工资管理系统 backup all',description=’Full Backup Of pubs'"
MsgBox ”数据完全备份已经完成”, vbOKOnly + vbInformation, "提醒”
End Sub
Private Sub Command2_Click()
cn.Execute "restore database 工资管理系统 from disk='d:\工资备份.bak' with FILE=1”
MsgBox ”数据恢复已经完成", vbOKOnly + vbInformation, "提醒”
End Sub
Private Sub Command3_Click()
Form2.Show
Unload Me
End Sub
Private Sub Form_Load()
Set cn = New ADODB.Connection
strcon = "Provider=SQLOLEDB。1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=工资管理系统;Data Source=XGJYJ2OKZYWHIWB;" + _
”use procedure for prepare=1;auto translate=true;" + _
"use encryption for data=false;tag with column collation when possible=false"
cn。ConnectionString = strcon
On Error Resume Next
cn.Open
If cn。Errors。Count 〉 0 Then
For i = 0 To cn。Errors.Count — 1
If cn.Errors(i)。Number = -2147467259 Then
MsgBox "网络不通或服务器未开,请确认后再试", vbOKOnly + vbInformation, "提醒"
Unload Me
Exit Sub
Exit For
End If
Next i
End If
End Sub
10、 单击报表打印功能按钮,将实现报表打印功能,代码如下:
Private Sub Command8_Click()
CommonDialog1.Action = 5
Printer.Print DataGrid1。Text
End Sub
界面如下:
详细设计结束!
五、课程设计小结及建议:
从此次课程设计中,我们懂得了合作的重要性,我们学会了如何应用VB与数据库连接(adodc),在VB中设计相关界面以达到题目所需要求。同时,运用datagrid及adodc控件来达到统计分类的效果,运用datagrid及datalist控件来达到查询功能.虽然在打印报表和数据库恢复功能上并不完善,但是还是从中学到了不少的知识。我认为,在做实验遇到错误时,最好是自己能将错误找出并将其改正,如果实在不行再找老师,然后再自己琢磨琢磨,这样的话更能提高自己的动手能力及实际操作。
课程设计报告
学生姓名 :********
专 业:计算机科学与技术
学 号:********
指导教师:********
设计部分:VB代码设计
2011年**月***日
展开阅读全文