VB488 基于VB+SQL人事管理系统
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
摘要
随着计算机技术的飞速发展,计算机在企业管理中应用的普及,利用计算机实现企业人事管理势在必行。本系统结合公司实际的人事管理制度,经过实际的需求分 析,采用功能强大的Visual Basic6.0作为开发工具而开发出来的单机版人事管理系统。整个系统从符合操作简便、界面友好、灵活、实 用、安全的要求出发,完成人事管理的全过程,包括新进员工加入时人事档案的建立、老员工的转出、职位等的变动引起职工信息的修改、员工信息查询、统计等人 事管理工作以及新进员的新增、老员工修改等管理工作。经过实际使用证明,本文所设计的人事管理系统可以满足公司人事管理方面的需要。
关键字:VB,企业,人事管理,SQL Server copyright think58
随着计算机技术的飞速发展,计算机在企业管理中应用的普及,利用计算机实现企业人事管理势在必行。对于大中型企业来说,利用计算机支持企业高效率完成劳动人事管理的日常事务,是适应现代企业制度要求、推动企业劳动人事管理走向科学化、规范化的必要条件;计算机管理所无法比拟的优点检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。不同的企业具有不同的人事管理制度,这就决定了不同的企业需要不同的人事管理系统。 本文来自think58 [版权所有:http://think58.com]
1.2 课题研发的必要性性
如今,很多单位和部门已经拥有了计算机设备,具备了物质条件,但很多日常工作仍由管理者手工操作完成,这就造成了不必要的浪费。计算机的价格已经十 分低廉,性能却有了长足的进步。它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下几个方面:
首 先,计算机可以代替人工进行许多繁杂的劳动;
其次,计算机可以节省许多资源;
第 三,计算机可以大大的提高人们的工作效率;
第四,计算机可以使敏感文档更加安全,等等;
第 五,办公自动化是先进生产力发展的一个重要标志。
综上所述,利用计算机开发软件系统,替代传统的人工 操作来管理,可以节约大量的人、财、物力,是社会发展的必然趋势! 内容来自think58 [资料来源:THINK58.com]
1.3可行性分析概述
可行性分析是在用户的要求和系统调研的基础上进行的,对新系统的开发从社会、技术、经济、管理等方面进行分析,并得出新系统的开发工作可行、不可行、需要修改、追加投资、暂缓开发、分步实施等方案和结论,最后完成可行性分析。
可行性分析一般可定义为:可行性分析是在建设的前期对工程项目的一种考察和鉴定,对拟议中的项目进行全面与综合的技术、经济能力的调查,判断它是否可行。
(1)可行性分析阶段的主要工作包括以下几个方面:
①新系统目标可行性分析:
分析新系统的目标是否符合企业的现状和发展的需要。
②社会可行性分析:
社会可行性分析主要是指管理信息系统的开发是否符合国家法律、下策,是否能够与社会大系统实现良好的对接。
③技术可行性分析:
技术可行性分析是根据新系统的目标来衡量是否具备所需要的技术,包括系统开发人员数量和水平,硬件方面,软件方面及其它应用技术。
④经济可行性分析
经济可行性分析主要是对开发新系统所投入的资金与系统投入使用后所带来的经济效益进行比较,确认新系统是否会给企业带来一定的经济效益。
⑤管理可行性分析:
管理可行性分析主要是分析企业现行的管理体制和企业领导是否具有现代化的管理意识和管理水平。 copyright think58 [资料来源:http://think58.com]
1.4 技术可能性
技术可行性分析主要包括四个方面:目前有关的技术能否支持所开发的新系
本文来自think58 [资料来源:http://www.THINK58.com]
系统开发人员在管理信息系统的开发过程中所需要的计算机设备及其有关的外部设备;管理信息系统开发成功投入使用后,使用单位所应具备的计算机设备及其有关的外围设备。对硬件资源进行可行性分析时主要考虑计算机的主机内存、类型、功能、联网能力、安全保护措施以及输入/输出设备,外存储器和联网数据通信设备的配置、功能、效率等指标是否符合系统方案设计要求,同时还要考虑计算机的性能/价格比。
(3)软件资源
软件资源的可行性分析主要考虑以下几点是否满足用户的要求:
①操作系统的选择;
②编译系统的选择;
③数据库管理系统的选择;
④高级编程语言的选择;
⑤汉字处理系统的选择;
⑥应用软件包的选择。
本系统在开发前,与中心的领导和有关的操作人员密切沟通,认真听取他们的意见,并吸收他们的积极观点,使本系统的开发在相当大的程度上具有一定的先进性和合理性。
本文来自think58 [资料来源:http://www.THINK58.com]
第二章 系统技术方法研究
现在,市场上可以选购的应用开发产品很多,流行的也有数十种。目前在我国市场上最为流行、使用最多、最为先进的可用作企业级开发工具的产品有:
Microsoft公司的Visual Basic
Microsoft公司的Visual C
Borland公司的Delphi
Java等等
在目前市场上这些众多的程序开发工具中,有些强调程语言的弹性与执行效率;有些则偏重于可视化程序开发工具所带来的便利性与效率的得高,各有各的优点和特色,也满足了不同用户的需求。然而,语言的弹性和工具的便利性是密不可分的,只有便利的工具,却没有弹性的语言作支持,许多特殊化的处理动作必需要耗费数倍的工夫来处理,使得原来所标榜的效率提高的优点失去了作用;相反,如果只强调程续语言的弹性,却没有便利的工具作配合,会使一些即使非常简单的界面处理动作,也会严重地浪费程序设计师的宝贵时间。
作为数据库系统的开发,Visual Basic是一个非常理想选择。数据库是MIS中的重要支持技术,在MIS开发过程中,如何选择数据库管理是一个重要的问题,目前,数据库产品较多,每种产品都具有各自的特点和适用范围,因此,在选择数据库时,应考虑数据库应用的特点及适用范围,本系统选用的数据库语言Visual Basic语言。
think58 [版权所有:http://think58.com]
2.1 Visual Basic简介
Visual Basic是一种可视化的、面对对象和条用事件驱动方式的结构化高级程序设计,可用于开发Windows环境下的种类应用程序。它简单易学、效率高,且功能强大,可以与Windows的专业开发工具SDK相媲美,而且程序开发人员不必具有C/C++编程基础。在Visual Basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的应用程序接口(API)函数,以及动态链接库(DLL)、动态数据交换(DDE)、对象的链接与嵌入(OLE)、开放式数据访问(ODBC)等技术,可以高效、快速地开发出Windows环境下功能强大、图形界面丰富的应用软件系统。
think58.com
[资料来源:http://think58.com]
Visual Basic通过事件来执行对象的操作。一个对象可能会产生多个事件,每个事件都可以通过一段程序来响应。例如,命令按钮是一个对象,当用户单击该按钮时,将产生一个“单击”(CLICK)事件,而在产生该事件时将执行一段程序,用来实现指定的操作。
在用Visual Basic设计大型应用软件时,不必建立具有明显开始和结束的程序,而是编写若干个微小的子程序,即过程。这些过程分别面向不同的对象,由用户操作引发某个事件来驱动完成某种特定的功能,或者由事件驱动程序调用通用过程来执行指定的操作,这样可以方便编程人员,提高效率。 内容来自think58 [资料来源:www.THINK58.com]
第三章 总体设计
3.1 系统通用结构
人事管理系统是一个典型的管理信息系统[7](Management Information System)简称MIS,它是一个由人、计算机及其他外围设备等组成的能进行信息的收集、传递、存贮、加工、维护和使用的系统[8]。它是1961年在美国由J.D.Gdllagher首先提出的,并确定其以计算机为主体,信息处理为中心的综合性系统,由计算机技术、网络通讯技术、信息处理技术、管理科学和人组成的一个综合系统,能提供信息以支持一个组织机构的运行、管理和决策功能。MIS系统通常用于系统决策,例如,可以利用MIS系统找出目前迫切需要解决的问题,并将信息及时反馈给上层管理人员,使他们了解当前工作发展的进展或不足。换句话说,MIS系统的最终目的是使管理人员及时了解现状,把握将来的发展路径。
对于典型的MIS系统结构目前存在两种较为流行的模式:C/S模式和B/S模式[9]。
C/S结构的MIS系统,这种结构借助于网络将应用资源和应用任务合理的分配到CLINET、SERVER两端。具体的,客户端主要功能是负责人机交互,管理用户接口、执行客户端应用程序,采集数据以及向服务器提交应用请求,而服务器则执行后台程序,主要承担数据库存储系统的共享管理、通讯管理、文件管理以及对客户机的请求提供服务。 copyright think58
B/S结构的MIS系统,这种结构与C/S模式相比,它简化了客户端的程序,通常在这种模式结构的系统中,客户端只需要一个浏览器就可以了。这种结构将许多工作交于WEB服务器来做,客户端只通过浏览器请求WEB服务,WEB服务器再根据不同请求返回信息,这其中还需请求数据库服务器以获取正确数据。因此,这种结构模式的MIS系统,而有瘦客户的称号,这是于C/S结构的胖客户相对而言的。
通常如果要求系统的响应要求快,又是用于局域网内部或机关企事业单位内部的系统,可以采用C/S结构模式。但如果用户不在同一局域网内,而是分散在各个不再的地方或处于不同的单位,在这种情况下B/S结构模式通常比较适合。有时,在开发一个系统时,完成C/S结构模式、B/S结构模式两个版本的程序。也有些系统采用混合的模式,一部分功能模块采用C/S结构开发,而另一部分模块采用B/S结构开发。
考虑到人事管理系统的需求,该系统开发应用B/S结构开发。其主要功能如图1所示。
图1 系统的主要功能模块
3.2 系统平台环境:
3.2.1硬件平台:
CPU:英特尔酷睿2双核 2.4 GHz;
内存:2GB 以上。
3.2.2 软件平台:
本系统的开发环境如下
操作系统:Windows XP/ Windows 2000/Windows Vista。
本文来自think58
数据库:SQL Server。
分辨率:最佳效果1280×1024像素。
3.3 数据库软件:SQL Server
SQL Server 是一个关系数据库管理系统,它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本。在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了。Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本;Sybase 则较专注于SQL Server在UNIX 操作系统上的应用。在本书中介绍的是Microsoft SQL Server 以后简称为SQL Server或MS SQL Server。
SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的最新版本。该版本继承了SQL Server 7.0 版本的优点同时又比它增加了许多更先进的功能,具有使用方便,可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。
SQL Server 2000 的特性Microsoft® SQL Server™ 2000 的特性包括:
(1).Internet 集成。SQL Server 2000 数据库引擎提供完整的XML 支持。它还具有构成最大的Web 站点的数据存储组件所需的可伸缩性、可用性和安全功能。SQL Server 2000 程序设计模型与 Windows DNA 构架集成,用以开发 Web 应用程序,并且SQL Server 2000 支持 English Query 和 Microsoft 搜索服务等功能,在Web 应用程序中包含了用户友好的查询和强大的搜索功能。 think58
[资料来源:THINK58.com]
(2).可伸缩性和可用性。同一个数据库引擎可以在不同的平台上使用,从运行 Microsoft Windows® 98 的便携式电脑,到运行 Microsoft Windows 2000 数据中心版的大型多处理器服务器。SQL Server 2000 企业版支持联合服务器、索引视图和大型内存支持等功能,使其得以升级到最大 Web 站点所需的性能级别。
(3).企业级数据库功能。SQL Server 2000 关系数据库引擎支持当今苛刻的数据处理环境所需的功能。数据库引擎充分保护数据完整性,同时将管理上千个并发修改数据库的用户的开销减到最小。SQL Server 2000 分布式查询使您得以引用来自不同数据源的数据,就好象这些数据是 SQL Server 2000 数据库的一部分,同时分布式事务支持充分保护任何分布式数据更新的完整性。复制同样使您得以维护多个数据复本,同时确保单独的数据复本保持同步。可将一组 数据复制到多个移动的脱接用户,使这些用户自主地工作,然后将他们所做的修改合并回发布服务器。
(4).易于安装、部署和使用。 SQL Server 2000 中包括一系列管理和开发工具,这些工具可改进在多个站点上安装、部署、管理和使用 SQL Server 的过程。SQL Server 2000 还支持基于标准的、与 Windows DNA 集成的程序设计模型,使 SQL Server 数据库和数据仓库的使用成为生成强大的可伸缩系统的无缝部分。这些功能使您得以快速交付 SQL Server 应用程序,使客户只需最少的安装和管理开销即可实现这些应用程序。 [资料来源:http://THINK58.com]
具体代码如下:
Attribute VB_Name = "frm_BM"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False 内容来自think58
Option Explicit
'--------------------窗体移动变量
Dim intOldX As Integer
Dim intOldy As Integer
Dim boolMouseFlag As Boolean
think58
[资料来源:http://THINK58.com]
Private Sub btn添加_Click()
'添加部门
If Trim(Me.txtBM.Text) = "" Then
MsgBox "部门名称不能为空!"
Exit Sub
End If
If ExecSql("select * from BM where BMMC='" & Me.txtBM.Text & "'").RecordCount > 0 Then
MsgBox "部门名称重复,不能添加!"
Exit Sub
End If
Dim strResult As String
strResult = Exec_SqL("insert into BM (BMMC) values ('" & Trim(Me.txtBM.Text) & "')")
If strResult <> "OK" Then
MsgBox strResult
Exit Sub
End If
Call initForm
End Sub think58
[资料来源:THINK58.com]
Private Sub ddd_DblClick()
'显示部门
If ddd.TextMatrix(ddd.Row, 0) = "" Then Exit Sub
Me.txtBM.Text = Trim(ddd.TextMatrix(ddd.Row, 1))
Me.txtBM.Tag = Trim(ddd.TextMatrix(ddd.Row, 0))
End Sub think58好,好think58 [版权所有:http://think58.com]
Private Sub Form_Load()
'调用函数
Call initForm
End Sub
copyright think58 [资料来源:THINK58.com]
Private Sub Form_Resize()
'窗体外观
Call FormFace(Me, Me.TopPicture, Me.KKShape)
Call TopCaption(Me.TopPicture, Me.Label2.Caption)
End Sub think58
Private Sub TopPicture_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
'准备窗体移动标志
intOldX = X
intOldy = Y
boolMouseFlag = True
End Sub think58好,好think58 [资料来源:http://think58.com]
Private Sub TopPicture_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'存储窗提议动前的left,top
Dim intLeft, intTop As Integer
intLeft = Me.Left
intTop = Me.Top
If Me.WindowState = 2 Then Exit Sub
If boolMouseFlag = True Then
Me.Left = intLeft + (X - intOldX)
Me.Top = intTop + (Y - intOldy)
End If
End Sub 内容来自think58
[资料来源:http://think58.com]
Private Sub TopPicture_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
'还原当前的窗体移动标志
boolMouseFlag = False
End Sub [资料来源:THINK58.com]
Sub initForm()
'初始化列表表头
'向列表中填充数据
Me.txtBM.Text = ""
Me.txtBM.Tag = ""
Dim arrName()
arrName = Array("部门编号", "部门名称")
Dim arrColwidth()
arrColwidth = Array(ddd.Width / 2, ddd.Width / 2 - 300)
ddd.Cols = 2
ddd.Rows = 2
Dim i As Long
For i = 0 To ddd.Cols - 1
ddd.ColWidth(i) = arrColwidth(i)
ddd.TextMatrix(0, i) = arrName(i)
ddd.TextMatrix(1, i) = ""
Next
ddd.Rows = 30
Call UpdateDDD(ddd, ExecSql("select BMBH,BMMC from BM "))
End Sub
Private Sub UserControl11_Click()
'删除部门信息
Dim strResult As String
If ExecSql("select * from BMZW where BMBH=" & Trim(Me.txtBM.Tag) & "").RecordCount > 0 Then
MsgBox "当前的部门正在被使用中,不能删除!"
Exit Sub
End If
strResult = Exec_SqL("delete from BM where BMBH='" & Trim(Me.txtBM.Tag) & "'")
If strResult <> "OK" Then
MsgBox strResult
Exit Sub
End If
Call initForm
End Sub think58.com [来源:http://www.think58.com]
Private Sub UserControl13_Click()
'关闭窗体
Unload Me
End Sub think58好,好think58 [资料来源:http://www.THINK58.com]
Private Sub UserControl14_Click()
'调用函数
Call initForm
End Sub
5.2.2 职位列表管理
图5.2.1--1 职位列表界面
具体代码:
Begin VB.Form frm_ZW
Attribute VB_Name = "frm_ZW"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False 内容来自think58 [资料来源:http://www.THINK58.com]
Option Explicit
'--------------------窗体移动变量
Dim intOldX As Integer
Dim intOldy As Integer
Dim boolMouseFlag As Boolean 内容来自think58 [版权所有:http://think58.com]
Private Sub btn添加_Click()
'添加职位
If Trim(Me.txtZW.Text) = "" Then
MsgBox "职位名称不能为空!"
Exit Sub
End If
If ExecSql("select * from ZW where ZWMC='" & Me.txtZW.Text & "'").RecordCount > 0 Then
MsgBox "职位名称重复,不能添加!"
Exit Sub
End If
Dim strResult As String
strResult = Exec_SqL("insert into ZW (ZWMC) values ('" & Trim(Me.txtZW.Text) & "')")
If strResult <> "OK" Then
MsgBox strResult
Exit Sub
内容来自think58
</table>
<table width="100%" border="0"
cellspacing="0" rules="all" style="WIDTH: 100%; BORDER-COLLAPSE: collapse">
<tr
onmouseover="currentcolor=this.style.backgroundColor;this.style.backgroundColor='#f0f7ff'"
onmouseout="this.style.backgroundColor=currentcolor">
[来源:http://think58.com]
<td width="247" align="center" class="main_matter_td">请输入新密码</td>
<td width="1160" align="left" class="main_matter_td"><label>
<input name="pass" class="textBox" type="password" id="textfield" size="25" />
</label></td>
</tr>
内容来自think58
[来源:http://www.think58.com]
<tr
onmouseover="currentcolor=this.style.backgroundColor;this.style.backgroundColor='#f0f7ff'"
onmouseout="this.style.backgroundColor=currentcolor">
<td width="247" align="center" class="main_matter_td">请再次输入新密码</td>
<td width="1160" align="left" class="main_matter_td"><label>
<input name="repass" class="textBox" type="password" id="textfield" size="25" />
[来源:http://www.think58.com]
</label></td>
</tr>
<tr
onmouseover="currentcolor=this.style.backgroundColor;this.style.backgroundColor='#f0f7ff'"
onmouseout="this.style.backgroundColor=currentcolor">
<td colspan="2" align="center" class="main_matter_td"><input type="submit" name="button" id="button" onMouseDown="check();" value="提交信息" /> copyright think58
[资料来源:www.THINK58.com]
<input type="reset" name="button2" onClick="add();" id="button2" value="重新填写" /></td>
<script language=javascript>
function add()
{
var pop=new Popup({ contentType:1,isReloadOnClose:false,width:700,height:400}); 本文来自think58
pop.setContent("contentUrl","/ck/admin/addnew.jsp");
pop.setContent("title","发布新闻");
pop.build();
pop.show();
}
function check()
{
if(f1.pass.value=="") think58.com [资料来源:http://www.THINK58.com]
{
alert("请输入新密码");
return;
}
if(f1.repass.value=="")
{
alert("请再次输入新密码"); think58好,好think58 [资料来源:THINK58.com]
参考文献
[1]王福成等: <<Visual Basic 6.0数据库开发指南>>, 清华大学出版社 2002年6月
[2]郭振波编著: << 深入浅出Visual Basic 6.0中文版>>, 人民邮电出版社2003年3月
[3]林永等编著: <<Visual Basic 6.0用户编程手册>>, 人民邮电出版社2002年11月
[4]刘炳文等编著: <<Visual Basic 6.0 程序设计教程>> ,清华大学出版社 2000年7月
本文来自think58 [资料来源:THINK58.com]