(1)增加功能
该系统按照电信人事管理人员的书写习惯,可对员工的编号、员工的姓名、性别、出生年月、所在部门、职位名称、最高学历、毕业院校、所学专业、身份证号码、家庭住址、到岗时间、电话号码、手机、传呼等基本信息进行记录,为了方便起见,还增加了备注的功能,可以对员工进行评语及特点的描述。信息录入后最终自动生成详细的易于操作的人事档案表, 可以随时的记录了解本公司的员工信息,一目了然。本系统支持任何一种输入方法。
(2)修改功能
该系统提供的档案修改功能可以在员工的基本情况发生变化后,根据修改的项目修改员工原始的各种信息,比如修改学历、所在部门、职务名称等。
(3)删除功能
该系统中删除的功能是为了考虑人员的流动性,当员工提出辞职后,可及时得把员工信息删除,在选择删除某一条信息后,为了防止误操作,系统会再次提示“您是否真的删除”,如果您选择确认后,才能删除。
(4)查询功能
对人事信息,根据查询条件列出查询结果,其中,查询条件可以是单一查询条件,也可以是组合查询条件。
(5)档案打印功能
可根据需要,打印出员工数据库中所有或部分人事档案。
工资信息管理功能
工资信息主要包括员工的底薪、补贴、奖金、加班费、房贴、养老金、医疗补助、住房公积金等项目,另外,系统会自动统计该员工的工资的稅前小计、所得税和实发工资等信息。
主要功能模块有:
(1)计发工资
(2)查询工资
(3)打印工资
培训信息管理功能
培训信息管理功能主要对员工培训信息进行管理,主要包括:员工姓名、培训起止时间、培训地点、培训费用方式及金额等信心进行管理。
主要功能模块有:
(1)培训信息录入
(2)培训信息修改
(3)培训信息删除
(4)培训信息查询
(5)职工履历表打印
系统功能模块图
系统功能模块图见图4.1。
图4.1 系统功能模块图
系统开发环境简介
选择微软平台作为主导,一方面考虑目前微软的飞速发展,越来越多的企业在规划内部网络时,将微软平台作为首选方案;另一方面从技术角度来讲,微软平台上的应用无论是在开发上,还是在软件的部署上都非常容易,而且性能优越。
操作系统:Windows 98或以上版本
数据库:MS Access 2000
开发工具与语言: Visual Basic 6.0英文版
数据库设计
数据库介绍
所谓数据库(Database)就是指按一定组织方式存储再一起的,相互有关的若干个数据的结合,数据库管理系统(Database Management System)就是一种操纵和管理数据库的大型软件,简称DBMS,他们建立在操作系统的基础上,对数据库进行统一的管理和控制,其功能包括数据库定义,数据库管理,数据库建立和维护,于操作系统通信等。DBMS通常由数据字典,数据描述语言及其编译程序,数据操纵(查询)语言及其编译程序,数据库管理例行程序等部分组成。
关系数据库是以关系模型为基础的数据库,是根据表、记录和字段之间的关系进行组织和访问的一种数据库,它通过若干个表(Table)来存取数据,并且通过关系(Relation)将这些表联系在一起,关系数据库提供了成为机构化查询语言(SQL)标准接口,该接口允许使用多种数据库工具和产品,关系数据库是目前最广泛应用的数据库。
在Visual Basic中,关系型数据库一般可以分为两类:一类是桌面数据库,例如Access、Paradox、FoxPro、Dbase,另一类就是客户/服务器数据库,例如SQL Server、Oracle和Sybase等。
一般而言,桌面数据库主要应用于小型的、单机的数据库应用程序。也是初学者常用的数据库类型。实现起来比较方便,但同时也只能提供数据的存取功能。它主要用于小型的、单机的、单用户的数据库管理系统。
电信人事管理信息系统的数据库选用Microsoft公司的Access产品作为数据库应用程序。目前的Access 2000是Microsoft强大的桌面数据库平台的第六代产品,是3 2位Access的第三个版本。Access有以下一些基本定义:
·数据库是一个包含各种Access “对象”(表、查询、窗体、报表、宏和模块)的文件,Access中所有工作都是建立在此基础之上的。
·表是存放数据的容器,被设计成行和列的格式,就像电子表中的那样。每一列叫做一个“字段”,包含特定类型的信息,如姓名或学历。每一行称为一个“记录”,包含与单个实体有关的所有信息,如某个员工的姓名、性别、所在部门、学历等。对于像Access这样的关系数据库管理程序,一个数据库通常包含几个存放相关数据的不同表。
·查询是一个Access对象,它询问数据库中有关数据的问题。根据设计方法的不同,查询能够在数据库中检索并组合来自不同表的数据。例如,可以设计一个查询来告知在公司中工作超过1年的职员有多少。查询还可以对一组数据执行操作,如更新或删除某组记录。
·窗体是一个窗口,它提供一种很方便的途径来查看数据库中已有记录或向数据库中增添新记录。在Access中,可以创建一个窗体,用来同时查阅单个表或多个表中的数据,还可以打印和显示窗体。
·报表是一个Access对象,设计来显示数据,其作用类似于窗体,但主要是用于数据打印,不能输入数据。
· 页是一种特殊类型的窗体,它使用户能够利用Web浏览器查看和编辑Access的表。
·宏用来保存Access中的一系列操作。可自动执行一些日常的任务,以便简化在Access中的工作。
· 模块是用Visual Basic for Applications(VBA) 编写的过程,VBA是Access的基础程序设计语言。利用VBA可以编写程序代码来完成Access宏所不能完成的特定任务。
使用ADO数据控件访问数据库
ADO(Active Data Objects)是一种新的数据访问方式,具有以下特征:
有一个简化的对象模型
与其他Microsoft和非Microsoft技术更加紧密的集成。
是一个本地和远程数据访问、远程和断开连接的记录集、用户可以访问的数据绑定接口以及层次化的记录集的通用接口。
电信人事管理信息系统通过ADO这个数据控件来访问数据库,首先,安装ADO 控件要在简体中文VISUAL BASIC6.0企业版中注册后才能使用。ADO(ActiveX Data Object)是微软提出的数据访问接口,它实现了RDO的绝大多数功能,另外还增加了一些用户以前没有接触到的特征。Visual Basic 6.0可以很好地支持ADO和OLE DB数据访问模式。
在ADO2.0中包含了数据绑定、可视化设计工具以及OLE DB数据源书写模板等新的内容。在Visual Basic6.0中,ADO的数据环境设计器(Data Environment Designer)取代了Visual Basic 5.0中的RDO的用户连接设计器(User Connection Designer)。User Connection对象只支持ODBC数据源,而Data Environment对象可以连接所有的OLE DB数据源o
ADO对象模型定义了一个可编程的分层的对象集合,它支持部件对象模型(COM)和OLE DB数据源。与其他的数据访问对象相比,包含在ADO的对象少得多,也更加容易使用。
ADO对象模型中包含了3个一般用途的对象:Connection、Command和Recordset。程序开发人员可以创建这些对象并且使用这些对象访问数据库。在ADO对象模型中还有其他几个对象,例如Field、Property、Error和Parameter,它们是作为前面3个对象的子对象进行访问的。
(1)、ADO数据控件的功能
ADO data控件使用ActiveX数据对象(ADO)来快速建立数据约束控件和数据提供者之间的连接,并快速创建记录集,然后将数据通过数据约束控件提供给用户,其中数据约束控件可以是任何具有“数据源”属性的控件,而数据提供者可以是符合OLE DB规范的数据源。使用Visual Basic的类模块也可以很方便的创建子集的数据提供者。在Visual Basic6.0中,可以使用ADO数据控件实现下面一些功能:
连接一个本地数据库或远程数据库。
打开一个指定的数据库表,或定义一个基于结构化查询语言(SQL)的查询、存储过程或者是该数据库中表的视图的记录集合。
将数据字段的数值传递给数据绑定的控件,可以在这些控件中显示或更改这些数值。
添加新的记录,或者根据对显示在绑定的控件中的数据的任何更改来更新一个数据库。
(2)、ADO数据控件的属性
ADO数据控件与Visual Basic的内部数据控件(Data)和远程数据控件(RDC)很相似,它允许使用ADO快速地创建与数据库的连接。
与Data控件类似,为了实现对数据库的访问,ADO数据控件提供了几个属性,这些属性定义了怎样连接数据库以及同什么样的数据库相连接。
Connection String属性:是一个字符串,可以包含进行一个连接所需的所有设置值,在该字符串中所传递的参数是与驱动程序相关的。例如,ODBC驱动程序允许该字符串包含驱动程序、提供者、默认的数据库、服务器、用户名称以及密码等。
ADO支持Connection String属性的4个参数,而且这4个参数将不经过ADO的处理直接送到数据源。这四个参数的属性如表3.2所示:
表4.1 Connection String属性的4个参数表
参数 描述
Provider 指定数据源的名称
File Name 指定基于数据源的文件名称
Remote Server 指定在打开一个客户端连接时使用的数据源名称
Remote Server 指定打开客户端连接时使用的服务器的路径与名称
数据词典分析
该软件的数据库名称为mang.mdb,该数据库由四张表组成,它们分别是:
员工基本信息表:mang
部门名称信息表:dep
岗位名称信息表:func
查询数据暂存表:query
查询数据暂存表的数据结构与员工基本信息表的数据结构相同。
员工信息查询表
表 4.2 员工信息查询表
部门名称信息表
表 4.3 部门名称息查询表
名 称 类 型 长 度 主键
部门名称 文本 20 √
岗位名称信息表
表 4.4 岗位名称信息查询表
名 称 类 型 长 度 主键
岗位名称 文本 20 √
打印数据报表设计
Visual Basic6.0有两种方法打印数据报表,一种方法就是预览数据报表时单击“打印”按钮,另一种方法就是在程序中调用Print Report方法打印数据报表,同时,可以在Error事件中捕获打印过程中发生的错误并且做出相应的处理。电信人事管理信息系统采用的是Visual Basic6.0提供的在程序中调用Print Report方法打印数据报表的打印方法。在程序中使用代码打印数据报表,既可以在显示打印对话框后打印数据报表,也可以不显示打印对话框而直接打印数据报表。
第五章 电信人事管理信息系统的功能实现
5.1 系统技术要点
一、时间范围的查询
时间范围的查询和一般字符的查询并不一样。一般字符的查询使用 SQL 语句 “SELECT * FROM jiating where 姓名='" + ss +”即可,对于时间这样的字符使用的SQL必须是这样的格式“SELECT * FROM MANG where 日期 Between "#2/2/2002" And "2/2/2003#”。
因此使用SS定义STRING型变量用SS="#" & Text1.Text & "#"连接中间字符使用SELECT * FROM MANG where 日期 Between " + ss + " And " + ss2 + "索检记录。 二、打印查询后的记录
对于动态打印,直接使用DataReport是无法实现的。所以首先建立临时数据表 用"INSERT INTO QUERY SELECT* FROM QUERY where ", mycn, adOpenKeyset, adLockOptimistic将要打印的记录存放其中,再使用DataReport时,我通过DataEnvironment连接了一个临时数据表,该数据表中的数据根据查询条件的不同而变化,然后用Private Sub DataReport_QueryClose(Cancel As Integer, CloseMode As Integer)
Unload DataReport2
Unload DataEnvironment1
End Sub
刷新报表即可。
组合查询
实现:将查询的字段也设为变量嵌入到SQL中语句如下:
ss2 = Text2.Text
ss3 = Text3.Text
Adodc1.RecordSource = "SELECT * FROM mang where 字段1='" + ss4 + "' and 字段2='" + ss5 + "'"
Adodc1.Refresh
下面给出系统开发出来的详细界面以阐述电信人事管理信息系统的具体功能。系统完整源代码见附件,首先是进入登陆界面
在工程引用ADO2.0。
在命令按钮单击写下连接数据库USER表的判断语句
Private Sub Command1_Click()
denlu_name = Text1.Text
denlu_pass = Text2.Text
Dim mycn As New ADODB.Connection
Dim myrs As New ADODB.Recordset
Set myrs = New ADODB.Recordset
mycn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=rsgl.mdb;"
myrs.Open "SELECT * FROM [user] where (user.user)='" + denlu_name + "';", mycn, adOpenKeyset, adLockOptimistic
If myrs.BOF = True And myrs.EOF = True Then
MsgBox "查无此人", , "登陆信息"
Else
If myrs("pass") = denlu_pass Then
''''''''''''''''''''''''''''''''''''''''''
MsgBox "ok", , "登陆信息"
Form2.Show
Unload Me
'''''''''''''''''''''''''''''''''''''''''''''''''''
Else
MsgBox "密码不正确", , "登陆信息"
End If
目的是USER表没有该用户,将无法使用本程序
然后进入主界面,如下图所示:
5.2 主界面设计
图 5.1 主界面
程序部分的代码实现
Private Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As String) As Long
'声明API函数用于数据备份和恢复
Private Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
Private Sub Form_Load()
Me.Left = GetSetting(App.Title, "Settings", "MainLeft", 4000)
Me.Top = GetSetting(App.Title, "Settings", "MainTop", 4000)
Me.Width = GetSetting(App.Title, "Settings", "MainWidth", 6500)
Me.Height = GetSetting(App.Title, "Settings", "MainHeight", 6500)
'定位界面
End Sub
Private Sub mnudayindangan_Click()
Form5.Show '打开界面
End Sub
Private Sub mnudayinlaozi_Click()
DataReport5.Show '打开报表
End Sub
Private Sub mnulaozijifa_Click()
Form16.Show '打开界面
End Sub
Private Sub mnupeizhi_Click()
Form3.Show '打开界面
End Sub
Private Sub mnutuichu_Click()
End '退出所有程序
End Sub
Private Sub mnudayinwanzheng_Click()
'应做:添加 'mnudayinwanzheng_Click' 代码。
MsgBox "添加 'mnudayinwanzheng_Click' 代码。"
End Sub
Private Sub mnudayinjiandan_Click()
'应做:添加 'mnudayinjiandan_Click' 代码。
MsgBox "添加 'mnudayinjiandan_Click' 代码。"
End Sub
Private Sub mnulaozichaxun_Click()
Form9.Show '打开界面
End Sub
Private Sub mnudanganchaxun_Click()
Form4.Show '打开界面
End Sub
Private Sub mnudanganshanchu_Click()
Form1.Command2.Visible = False
Form1.Command1.Visible = True
Form1.Show '打开界面
End Sub
Private Sub mnudanganxiugai_Click()
Form1.Show '打开界面
Form1.Command2.Visible = True
Form1.Command1.Visible = False
End Sub
Private Sub mnudanganzengjia_Click()
Form2.Show '显示增加窗口
'控件初始化
Form2.Text3.Text = ""
Form2.Text5.Text = ""
Form2.Combo1.Text = ""
Form2.Combo4.Text = ""
End Sub
Private Sub munchushihua_Click()
Response = MsgBox("是否初始化?", vbYesNo)
If Response = vbYes Then
Dim mycn As New ADODB.Connection '初始化
Dim myrs As New ADODB.Recordset
Set myrs = New ADODB.Recordset
mycn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=mang.mdb;"
myrs.Open "delete FROM mang ;", mycn, adOpenKeyset, adLockOptimistic
myrs.Open "delete FROM zgjl ;", mycn, adOpenKeyset, adLockOptimistic
'通过SQL语言删除表中所有记录
MsgBox "成功"
Else
Exit Sub
End If
End Sub
Private Sub mundayinlvlibiao_Click()
基于VB和Access的电信人事管理系统文档(二)由毕业论文网(www.huoyuandh.com)会员上传。