人力资源管理系统

摘要和关键词

随着计算机的普及和计算机科学技术的飞速发展,人们开始越来越多地利用计算机解决实际问题。人事工资管理是企业信息管理的重要部分面对大量的人事工资信息,采用人力处理将浪费大量的时间、人力和物力,且数据的准确性低。因此,开发一个界面友好,易于操作的人事工资管理软件进行自动化处理变得十分重要,这正是本系统开发的目的和意义。

软件采用多文档界面,能满足中小型企业人事工资管理的基本需要。本论文针对该软件的各个方面, 开发过程中涉及到的技术和工具都分别进行了阐述。

软件功能简单介绍如下:

1. 人事管理,包括人事档案管理、人事档案查询。该软件支持员工的照片、个人简历、家庭成员的管理。支持多种查询方式,能方便的对查询结果浏览、排序、打印及其打印预览。

2.工资管理,包括工资录入、查询和统计分析。软件支持工资条打印及其打印预览。

3.其它功能包括系统维护帮助系统等。能保证数据信息的安全性,方便用户使用。

开发中用到的工具和技术简单介绍如下:

1.采用VB6.0为开发工具, ACCESS 2000为后台数据库的开发工具。

2.充分利用ADO为数据库的访问技术。

此外,在软件的开发过程中尽量结合软件工程的思路,参阅了相关文献来完成此次毕业设计的任务。

关键词: 人事工资管理人事档案管理ADO

Abstract And Keyword

With the popularization of computer and rapid development of new technology in computer science, People being to use the computer to solve the practical problems. Personnel and wage management is one of main parts of the enterprises’ information management. Facing so many personnel and wage information, time, manpower and material resources would be wasted and the level of accuracy is lower, if the operating is done by people. So, it is important to develop a software of personnel and wage management, whose interface is user-friendly and operation is easy. This is just purpose and meaning to develop the software.

This software uses the multiple Document/View as the interface, and it can meet the basic needs of middle and small enterprise for their personnel and wage management. This paper expounds the different aspects of the software, covering technology and tools involved in development process.

The function of this software is introduced briefly as follows:

1. Personnel management. It includes personnel document management、personnel document searching. This software provides the personnel’s photo、resume and members of family management. It provides several method of searching, and the result you get is easy to search、sort、print and print preview.

2. Salary-and-wage administration. It includes wage input, searching and statistical analysis. It provides printing and printing preview of the item of salary.

3. Other functions, including the maintenance of system, the help system etc, were presented. It can ensue the high level of security of data information and operating easily.

The tools and technology are introduced briefly as follows:

1. It uses the VB6.0 as the development tool, ACCESS2000 as the tool of developing background database.

2. It uses the ADO as database accessing technology.

Again,Ihave tried to use the ideology of software engineering in the development process, and referred to many related literature to accomplish this project .

Keyword: Personnel and wage managementpersonnel document management ADO

 

摘要和关键词

Abstract And Keyword

第一章 绪论

1.1 人力资源管理系统概述

1.2  人力资源管理系统的发展历程

1.3 课题研究目的和意义

1.4 研究内容与论文结构

第二章 人力资源管理系统需求分析

2.1 系统任务概述

2.2 系统功能需求

2.3 系统体系结构

2.4 系统开发环境

2.4.1 Microsoft Visual Basic简介

2.4.2 Access简介

第三章 数据库系统的设计和实现

3.1  数据库系统简介

3.1.1数据库系统的发展

3.1.2数据库系统基本结构

3.1.3关系数据库管理系统(RDBMS)

3.2  数据库设计原则

3.3  数据库接口技术

3.3.1.  DAO接口

3.3.2. RDO接口

3.3.3. ODBC接口

3.3.4. ADO接口

3.4  本系统数据库实现

3.4.1系统数据分析

3.4.2 SQL语言

3.4.3 Access数据表

3.4.4 VB的连接

第四章 系统模块的设计和实现

4.1  用户登录界面的实现

4.2  系统各模块的实现

4.2.1 基本信息模块

4.2.2 工资信息管理模块

4.2.3 家庭关系信息模块

4.2.4 企业部门管理模块

4.2.5 信息查询模块

4.2.6 用户管理模块

4.2.7 打印报表模块

第五章    

5.1  系统测试策略说明

5.2  测试报告

5.2.1 测试目的:

5.2.1测试结果:

5.3  测试用例

第六章 系统工作总结及展望

6.1 系统工作总结及改进方向

6.2 展望

   

参考文献

第一章 绪论

1.1 人力资源管理系统概述

从人力资源的角度来讲,人们已经产生一种共识,那就是“人力资源是企业最珍贵的资产”。现在,人力资源不仅是企业最珍贵的资产,而且应该是唯一“动态的资产”。

一个企业,无论是土地,还是设备,还是流动资金,他们的实质都是静态资产。人们认为财务管理首要的是讲“管好钱”。其实钱是属于静态资产,钱是不会跑的,它又没有长脚。如果说钱会跑,是因为有人去动他,所以不是钱的问题,仍然是人的问题。钱是不能主动创造价值的,即使是被投资于很好的项目,也是人做的决定,也是由人在那里管理。所以,唯有人的行为才是动态的;只有人的行为才能创造价值。

一套比较系统的人力资源管理理念,并建立了一整套比较规范的人力资源管理方法。在积极建立企业现代企业管理机制的今天,仅仅靠原始的手工管理或简单的单机管理,人力资源部门面对大量的信息,无法有效率地将其中的重要部分提取出来,并做出相应的判断和处理。公司管理者的决策只能依据报表数据,在浪费大量人力、物力的同时无法做到实时监控,难以保证数据的准确性和及时性。因此,先进的管理思想在企业中实现就成为了一个可望而不可及的目标。公司集团非常急需一套既有先进管理思想又适合国内大企业的人力资源管理信息系统,作为实现目标和提高现有水平的一种重要手段!

人事工资管理系统是一个公司不可缺少的部分,它的内容对于公司的决策者和管理者来说都至关重要, 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用

人力资源管理系统是信息管理系统,其开发的功能主要包括:通过计算机管理人事档案,日常办公,实现无纸化办公,通过工时计算,统计出各项数据,分析出生产现状和员工的工作表现,通过强大的查询和索检高效的索检出数据,提高办事效率。

人力资源管理(HRM, Human Resource Management)的定义为,组织中人力资源的管理,意指一个组织对人力资源的获取、维护、激励与运用与发展的全部管理过程与活动。

所谓人力资源的意义为,一个社会所拥有的智力劳动和体力劳动能力的人们之总称,包括数量与质量两种。人力资源的观念,起源自60年代,企业界之前名称为「人事管理」,主要的差別,在于人力资源视员工为组织的资产,因此需要为员工发展各种人力资源规划与招募考选、薪资福利、教育训练、职涯发展等服务功能,而非传统局限于人事行政的业务。

一般而言,良好的人力资源管理,有助于为企业达到以下的目标:

  1. 协助组织达成发展目标与远景。
  2. 有效地运用人员的能力与技术专才。
  3. 促使组织成员的工作士气高昂且激发潜能。
  4. 滿足组织成员的自我实现感与增加成员的工作成就感。
  5. 发起且落实组织变革。
  6. 提高组织成员的工作生活品质。
  7. 协助企业负责人做出正确决策。

1.2  人力资源管理系统的发展历程

人力资源管理系统的发展历史可以追溯到20世纪60年代末期。由于当时计算机技术已经进入实用阶段,同时大型企业用手工来计算和发放薪资既费时费力又非常容易出差错,为了解决这个矛盾,第一代的人力资源管理系统应运而生。当时由于技术条件和需求的限制,用户非常少,而且那种系统充其量也只不过是一种自动计算薪资的工具,既不包含非财务的信息,也不包含薪资的历史信息,几乎没有报表生成功能和薪资数据分析功能。但是,它的出现为人力资源的管理展示了美好的前景,即用计算机的高速度和自动化来替代手工的巨大工量,用计算机的高准确性来避免手工的错误和误差,使大规模集中处理大型企业的薪资成为可能。

第二代的人力资源管理系统出现于20世纪70年代末。由于计算机技术的飞速发展,无论是计算机的普及性,还是计算机系统工具和数据库技术的发展,都为人力资源管理系统的阶段性发展提供了可能。第二代人力资源管理系统基本上解决了第一代系统的主要缺陷,对非财务的人力资源信息和薪资的历史信息都给予了考虑,其报表生成和薪资数据分析功能也都有了较大的改善。但这一代的系统主要是由计算机专业人员开发研制的,未能系统地考虑人力资源的需求和理念,而且其非财务的人力资源信息也不够系统和全面。

人力资源管理系统的革命性变革出现在20世纪90年代末。由于市场竞争的需要,如何吸引和留住人才,激发员工的创造性、工作责任感和工作热情已成为关系企业兴衰的重要因素,人才已经成为企业最重要的资产之一。"公正、公平、合理"的企业管理理念和企业管理水平的提高,使社会对人力资源管理系统有了更高的需求;同时由于个人电脑的普及,数据库技术、客户/服务器技术,特别是Internet/Intranet技术的发展,使得第三代人力资源管理系统的出现成为必然。

第三代人力资源管理系统的特点是从人力资源管理的角度出发,用集中的数据库将几乎所有与人力资源相关的数据(如薪资福利、招聘、个人职业生涯的设计、培训、职位管理、绩效管理、岗位描述、个人信息和历史资料)统一管理起来,形成了集成的信息源。友好的用户界面,强有力的报表生成工具、分析工具和信息的共享使得人力资源管理人员得以摆脱繁重的日常工作,集中精力从战略的角度来考虑企业人力资源规划和政策。

1.3 课题研究目的和意义

人力资源系统的开发,其功能将真正扩展到全方位企业管理的范畴。人力资源系统的功能范围,也从单一的档案、工资、保险管理,发展到可为企业的决策提供帮助的全方位解决方案。

人力资源管理信息系统的目的和意义在于:

1、充分利用网络资源,进一步优化和再造管理流程,使人力资源的管理更为高效和科学,数据更为准确,满足人力资源部提升服务和管理水平的要求,使人力资源的管理更为高效和科学,数据更为准确;

2、进一步完善人力资源的业务管理功能;

3、增强员工自助服务的功能,提高业务的透明度及员工的参与程度,简化人力资源事务性的管理流程,使人事劳动部门的管理人员有更多的时间和精力用于人力资源的战略规划;

4、建立流程引擎和角色管理机制,增加面向用户的流程变更管理和用户管理的功能;

5、健全安全机制,完善安全监控及审计功能;

6、增强系统可视化的设计,提高用户的可操作性,尽可能减少用户培训;

7、决策支持:完善人力资源决策支持系统,使基于人力资源系统数据的决策更为直观和精确,确定管理人员能够及时快捷地获得决策所需的信息。

总的来说,人力系统建设就是希望通过优化和再造流程的人力资源重建,使将来的人力系统成为企业准确、开放、安全、可靠的数据平台;成为人事劳动科教部门业务工作的得力助手和监控中心;成为企业人力资源战略决策的主要数据来源最终实现开发人才、服务人才、利用人才和降低人力资源成本、提高人力资源的利用效率的目的。

1.4 研究内容与论文结构

本文的主要目的是建立一套比较完成的人力资源管理系统,并形成一整套比较规范的人力资源管理方法。通过计算机管理人事档案,日常办公,实现无纸化办公,通过工时计算,统计出各项数据,分析出生产现状和员工的工作表现,通过强大的查询和索检高效的索检出数据,提高办事效率。

本章介绍人力资源管理系统发展的时代背景以及人力资源管理系统发展概况和趋势,并阐述了本文的主要工作。

第二章对人力资源管理系统的需求进行分析,并提出了人力资源管理系统的系统结构,并最终得出系统设计概要。

第三章讨论了 数据库系统的设计与实现,阐述了数据库设计原则及接口技术,在此基础上提出了本系统数据库的实现方案。

第四章详细介绍了系统各功能模块的实现。

第五章总结了所做的工作,针对已实现的系统不足提出下一步改进的方案。

第二章 人力资源管理系统需求分析

2.1 系统任务概述

一套理想的人力系统的功能将真正扩展到了全方位企业管理的范畴。人力资源的功能范围,也从单一的工资核算、人事管理,发展到可为企业的决策提供帮助的全方位解决方案。这些领域包括人力资源规划、员工考核、劳动力安排、招聘管理、员工薪资核算、培训计划等。并逐步同公司财务、生产系统组成高效的、具有高度集成性的企业资源信息平台。

人力资源规划的辅助决策功能在现代企业管理中的运用体现为:为了应付频繁的企业重组及人事变动,企业的管理者可以运用人力资源系统,根据本企业的生产需求状况,方便地编制本企业组织结构和人员结构规划方案,通过各种方案在系统中的比较和模拟运行评估,产生各种方案的结果数据,并通过直观的图形用户界面,为管理者最终决策提供辅助支持。

此外,人力资源规划还可制定职务模型,包括职位要求、升迁路径和培训计划。通过人员成本分析,可以对过去、现在、将来的人员成本作出分析及预测,并通过人力资源系统集成环境,为企业成本分析提供依据。

因此该人力资源管理系统的设计目标有以下几点:

  1. 充分利用网络资源,进一步优化和再造管理流程,使人力资源的管理更为高效和科学,数据更为准确;
  2. 整合现有的档案、工资、保险三个子系统,净化现有档案数据;
  3. 完善人力资源决策支持系统,使基于人力资源系统数据的决策更为直观和精确;
  4. 增强员工自助服务的功能,简化人力资源事务性的管理流程,使人力资源部门的人员有更多的时间和精力用于人力资源的战略规划;
  5. 完善人力资源系统的业务管理功能,如“定岗定编”、 绩效考核”、“劳工用工管理”等等;
  6. 建立流程引擎和角色管理机制,增加面向用户的流程变更管理和用户管理的功能;
  7. 健全安全机制,完善安全监控审计功能;
  8. 增强系统可视化的设计,提高用户的可操作性,减少用户培训。

2.2 系统功能需求

根据一般人事工资管理需求,系统主要达到以下几个功能:

  1. 人事信息录入,编辑,修改,查询,打印
  2. 工资管理录入,编辑,修改,查询,计算,统计
  3. 家庭关系信息录入,编辑,修改
  4. 企业部门管理录入,编辑,修改
  5. 各种信息的查询打印
  6. 系统数据的安全保密,设定系统用户
  7. 帮助信息。
  8. 打印报表。

根据以上需求,我们将使用面向对象的编程方法,使用编程语言设计界面,在界面上放置控件,通过控件连接数据库,开发出应用程序。

2.3 系统体系结构

系统模型如图所示

图2.1 系统模型及流程图

2.4 系统开发环境

根据论证,人力资源管理系统将采用Windows下的Visual Basic 编程环境和使用Access2000 实现关系型数据库,使用的技术和手段具有先进性和延续性。

2.4.1 Microsoft Visual Basic简介

Microsoft Visual Basic,它提供了开发 Microsoft Windows 应用程序最迅速、最简捷的方法。不论是 Microsoft Windows 应用程序的资深专业开发人员还是初学者,Visual Basic 都为他们提供了整套工具,以方便开发应用程序。

何谓 Visual Basic?“Visual”指的是开发图形用户界面 (GUI) 的方法。不需编写大量代码去描述界面元素的外观和位置,而只要把预先建立的对象add到屏幕上的一点即可。如果已使用过诸如 Paint 之类的绘图程序,则实际上已掌握了创建用户界面的必要技巧。

“Basic”指的是 BASIC (Beginners All-Purpose Symbol it Instruction Code) 语言,一种在计算技术发展史上应用得最为广泛的语言。Visual Basic 在原有BASIC 语言的基础上进一步发展,至今包含了数百条语句、函数及关键词,其中很多和 Windows GUI 有直接关系。专业人员可以用 Visual Basic 实现其它任何 Windows 编程语言的功能,而初学者只要掌握几个关键词就可以建立实用的应用程序。

Visual Basic 不仅是 Visual Basic 编程语言。Visual Basic 编程系统,Microsoft Excel 的Applications Edition, Microsoft Access和Windows的许多其他应用程序都使用这一语言。Visual Basic Scripting Edition (VBScript) 是广泛使用的脚本语言,它是 Visual Basic 语言的子集。这样,在学习 Visual Basic 中得到的经验可应用到所有这些领域中。

从开发个人使用或小组使用的小工具,到大型企业应用系统,甚至通过Internet 的遍及全球分布式应用程序,都可在 Visual Basic 提供的工具中各取所需。

1、数据访问特性允许对包括 Microsoft SQL Server 和其它企业数据库在内的大部分数据库格式建立数据库和前端应用程序,以及可调整的服务器端部件。

2、有了 ActiveX 技术就可使用其它应用程序提供的功能,例如 Microsoft Word 字处理器,Microsoft Excel 电子数据表及其它 Windows 应用程序。甚至可直接使用 VBP 或 VBE 创建的应用程序和对象。

3、Internet 功能强大,使得您很容易在应用程序内通过 Internet 或 Intranet访问文档和应用程序,或者创建 Internet 服务器应用程序。

4、已完成的应用程序是使用Visual Basic 虚拟机的真正 .exe 文件,您可以自由发布。

2.4.2 Access简介 

Access是Office办公套件中一个极为重要的组成部分。刚开始时微软公司是将Access单独作为一个产品进行销售的,后来微软发现如果将Access捆绑在OFFICE中一起发售,将带来更加可观的利润,于是第一次将Access捆绑到OFFICE97中,成为OFFICE套件中的一个重要成员。现在它已经成为Office办公套件中不可缺少的部件了。自从1992年开始销售以来,已经成为世界上最流行的桌面数据库管理系统。Access的新版本功能变得更加强大。不管是处理公司的客户订单数据;管理自己的个人通讯录;还是大量科研数据的记录和处理,人们都可以利用它来解决大量数据的管理工作。

Access的基本功能及其内部结构包括:

2.4.2.1  ACCESS具有三大功能:

    1. 建立数据库;
    2. 数据库操作;
    3. 数据通讯

2.4.2.2  ACCESS的内部结构

ACCESS数据库是关系型数据库,具有表的特性,在ACCESS数据库中,包括表、查询、窗体、报表、页、宏和模块七个对象,这些对象用于收集、存储和操作各种不同的信息。它们功能如下:

(1)利用表对象存储信息

(2)利用查询对象搜索信息

(3)利用窗体对象查看信息

(4)利用报表对象显示信息

(5)利用页对象显示数据访问页信息

(6)利用宏对象完成自动化工作

(7)利用嵌入模块实现复杂功能

2.4.2.3、ACCESS数据库的构成

ACCESS数据库是一系列数据基本表、表与表之间的关系、查询、窗体、报表、页、宏和模块的集合,这些成分统一组织在一个以.mdb为后綴的数据库文件中。

(1)数据基本表

表是保存数据或信息的主要场所,它是一个二维表,二维表的行称为一个记录,存储某个实体的整体信息,是表的基本单位。表的一列称为一个字段,存储实体的一个属性的信息,是表的可访问的最小逻辑单位。表都应有至少一个关键字,它可使表中的记录惟一。

(2)表与表之间的关系

在一个数据库中包含的若干个表中,表与表之间存在着一些联系。

(3)查询

在数据库中的表中检索出特定信息,以满足用户的需要。如:在销售表中找出民生用户的销售情况。即可建立一个查询,将“民生”用户的有关信息显示出来。

查询可分为选择查询和动作查询,选择查询信息并不改变表对象中的信息,可对记录进行分组,并且对记录作总计、计数、平均值等其他类型的总和计算。动作查询则在完成对数据的查找后再对表中信息进行处理,如生成一个新表、完成删除、添加记录等操作。

查询结果可以二维表的形式显示,但它不是基本表,每一个查询只记录该查询的操作方式。

(4)窗体

窗体实际上是一个类似于窗口的人机交互界面,使用窗体主要是为用户提供一个友好的数据操作界面。

(5)报表

报表通常是我们进行信息处理的最终产物,用来输出检索到的信息,可以显示或打印出来。

(6)宏

宏是若干个ACCESS命令的序列,它可以简化一些经常性的操作。如用户可以在窗体中设置一个命令按扭,当用鼠标单击这个按钮是,就会执行一个指定的宏。

(7)模块

模块是用ACCESS2000所提供的Visual Basic语言编写的程序段。有两种基本类型:类模块和标准模块。对于复杂的自动处理操作,使用宏难于实现时,可使用VBA来编写程序。

(8)WEB页

这是ACCESS2000新增的功能,它使得ACCESS2000与INTERNET紧密结合起来,通过它,用户可以直接建立WEB页,在网络上发布数据库信息。

第三章 数据库系统的设计和实现

3.1  数据库系统简介

数据库技术引入到MIS领域,使MIS发展到了一个新的水平。数据库系统是适合于大量数据的存储和管理的有效方法。随着社会的发展,数据急剧增加,数据管理成了人类社会活动面临的一个主要问题。计算机的高速处理能力和大容量存储器实现了数据管理的自动化。早期数据管理的方法是文件系统。文件系统中的数据是面向应用系统的。

每个应用系统各自建立自己的一组文件,用户程序和数据文件互相依赖,这样会造成数据的大量冗余,浪费了存储空间。文件系统还难于保证数据的安全性和完整性。

3.1.1数据库系统的发展

数据库技术从20世纪60年代中期产生至今,在短短的40多年的时间里,无论在技术方面还是在应用范围方面,其发展速度之快,是其他许多技术所不能及的.

1968年美国IBM公司研制的信息管理系统((IMS/60)是著名的层次型数据库系统的典型代表。1969年10月美国CODASYL的数据库任务组提出了网络数据库模型的数据规范,并于1971年4月发表了DBTG报告,正式确定了数据库设计的网络方法(DBTG方法),真正把数据库和文件系统区别开来,为数据库技术奠定了基础。1970年6月E.F.Codd提出了数据库关系模型,开创了数据库的关系方法和数据库规范化理论的研究。关系方法的出现促进了数据库理论的研究,把数据库理论与技术推向了新的阶段。80年代以来,关系型数据库理论日益成熟并得到空前广泛的应用。同时,数据库理论和技术主要在两个方面进一步发展:一方面是采用新数据模型(如面向对象数据模型,对象一关系数据模型)构造数据库,将数据库系统从传统的事务处理领域扩展到更广一泛的领域,如应用在计算机辅助设计/制造(CAD/CAM)等领域中,满足对复杂对象的存储和处理要求:另一方面是数据库技术与其它学科的发展高度结合,例如,数据库技术与分布处理技术结合导出的分布式数据库,数据库技术与人工智能技术结合导出的演绎数据库、智能数据库和主动数据库,数据库技术与多媒体技术结合导出的多媒体数据库等。

3.1.2数据库系统基本结构

数据库系统一般由四部分组成:

1. 数据库

数据库是存储在磁带、磁盘、光盘等外存介质上,按一定结构组织在一起的相关数据的集合。一般说,数据库的容量是很大的,数据按一定的组织结构存放,以便查询利用,数据库中的数据没有冗余,能提供多种应用服务,且数据的存储方式和位置相对独立于使用它们的程序。

2. 数据库管理系统(DBMS)

它是一组能完成描述、管理、维护数据库的程序系统。它按照一种公用的和可控制的方法完成插入新数据,修改和检索所有数据的操作。

3. 数据库管理员(DBA)

数据库管理员负责设计、建立、维护、管理数据库。

4. 用户和应用程序

它们的操作是以数据库中的数据为基础进行的。每个用户只用到数据库中的一部分数据,不同用户使用的数据以多种方式重叠。

数据库系统的核心是数据库管理系统和数据库。因此,我们也经常把这个核心称为数据库系统,根据美国国家标准化协会关于数据库系统的总结构的建议,整个数据库系统分为三级:面向用户或应用程序员的外级、面向建立和维护数据库人员的概念级、面向计算机中存储数据的内级。

各级有各自的描述语言和内容,数据在各级之间进行转换或映射。描述数据的格式及方法称为模式,在外级的称为外模式,在概念级的称为概念模式。这样一种结构使得数据库系统的概念更加清楚,各级目的、功能、作用彼此界限分明。这种结构的思想已被国际上广泛接受。

3.1.3关系数据库管理系统(RDBMS)

数据模型是对客观事物及其联系的数据描述。这能表明数据库系统中信息如何组织和操作。目前,有三种成熟的模型:层次模型、网状模型、关系模型(表格)。目前,绝大多数数据库系统都采用关系模型。

关系数据库系统是支持关系数据模型的数据库系统。关系数据模型由关系数据结构、关系操作集合和关系完整性约束3个要素组成:

1. 关系数据结构

关系模型的数据结构单一,在关系模型中,现实世界的实体以及实体间的各种联系均用关系来表示。在用户看来,关系模型中数据的逻辑结构是一张二维表。

2. 关系操作集合

关系模型中常用的关系操作包括:选择(select)、投影(proj ect)、连接(j oin)、除(divide)、并(union)、交(intersection)、差(difference)等,以及查询(query)操作和增(insert)、删(delete)、改(update)操作两大部分。

查询的表达能力是其中最主要的部分。

关系操作的特点是集合操作方式,即操作的对象和结果都是集合。这种操作方式也称为一次一个集合的方式。相应地,非关系数据模型的数据操作方式则为一次一个记录的方式。

关系模型给出了关系操作的能力和特点,关系操作通过关系语言实现。SQL(Standard Query Language)就是一种介于关系代数和关系演算之间的关系语言SQL不仅具有丰富的查询功能,而且具有数据定义和数据控制功能,是集查询DLL,DML和DCL于一体的关系数据语言。

3. 关系的完整性约束

数据库的数据完整性是指数据库中数据的正确性和相容性,那是一种语义概念问题,它包括两个方面:与现实世界应用需求的数据的相容性和正确性;数据库内数据之间的相容性和正确性。

根据以上的内容可知,一个较为理想的关系数据库系统,必须满足以下条件:

(1)用表来表示数据库所有信息;

(2)保持数据的逻辑表示独立于数据的物理存储特征:

(3)使用一种高级语言对数据库中的信息进行结构化、查询和修改;

(4)支持主要的关系运算;

(5)支持视图,允许用户选择浏览表中的数据的方式;

(6)支持安全和授权机制;

(7)通过事务处理程序和恢复程序保护数据。

而该管理系统中采用的SQL Server 2000数据库系统完全可以满足以上需求。

3.2  数据库设计原则

数据库是MIS的核心,是存储数据的实体,是整个系统信息资源共享的基础,数据库设计的任务是按照用户应用的要求,为某一部门或组织设计一个结构合理、使用方便、效率较高的数据库及其应用系统,数据库系统设计的优劣将影响整个系统的性能。

在对数据库应用程序影响的各个方面中,数据库本身的设计最为重要。用户组织表格中独立数据项的方法以及将数据库中不同的表格相互联系的方法形成了数据库应用程序的基础。一个薄弱的基础增加了编程的难度,使程序的维护变得困难,削弱了基于它的程序的功能,当用户需求增加时,也不易升级。不恰当的数据库设计还可能迫使设计者使用那些低效率的编程方法,不仅使编程的时间更长,而且更容易出错。

因此,为了提高开发本人力资源管理系统的质量和效率,针对该公司的业务特点,在数据库设计时遵循了以下原则

1. 层次分明,布局合理

数据库系统必须层次分明,合理布局。数据信息应自下而上,逐层浓缩、归纳、合并,减少冗余,提高数据共享程度。

2. 保证数据库结构化、规范化、编码标准化

这是建立数据库系统和进行业务部门内、外信息交换的基础。在每一个数据库设计之前都要一个充分的、详细的数据分析、数据格式以及较为统一的编码,为减少数据的冗余量,应尽量避免库结构的重复,并且要保证整个数据库设计的完整性。

3. 数据的独立性和可维护性

应尽量做到数据库的数据具有独立性,独立于应用程序,使数据库的设计及其结构的变化不影响程序,反之亦然。另外,根据我们的设计开发经验,需求分析搞的再详细,使用人员所提的需求都不可能一下子提全面,此外,业务也是在变化的,所以数据库设计要考虑其扩展接口,使得系统增加新的应用或新的需求时,不至于引起整个数据库系统的重新改写。

4. 共享数据的正确性和一致性

应充分考虑数据资源的共享,合理建立公共数据库。采用数据库分层管理,使不同层次的信息数据共享。另外,由于共享数据是面向多个程序或多个使用者的,多个用户存取共享数据时,必须保证数据的正确性和一致性。

5. 减少不必要的冗余

建立数据系统后,应避免不必要的数据重复和冗余。但为了提高系统的可靠性而进行的数据备份还是必要的。

6. 保证数据的安全可靠

数据库是整个信息系统的核心,它的设计要保证其可靠性和安全性,不能因某一数据库的临时故障而导致整个信息系统的瘫痪。同时由于采用C/S体系结构的分布式数据库系统,应注意数据的安全性保护,作好对数据库访问的授权设计。要保证数据不被非法访问,病毒侵扰和软、硬盘故障破坏,还必须采取相应的保密措施。

3.3  数据库接口技术

为了实现客户机与服务器之间的数据连接,可以通过使用数据库的标准接口来实现。目前,客户机与服务器之间的标准接口主要有DAO, RDO, ADO, ODBC这四种数据访问接口[30]

3.3.1.  DAO接口

数据访问对象DAO (Data Access Objects)是一种面向对象的界面接口,通过DAO/Jet功能可以访问ISAM数据库。使用DAOi ODBC Direct功能可以实现远程RDO功能。使用DAO的程序编码非常简单,DAO提供丰富的游标(Cursor)类型的结果集和非游标(Cursor-Less)类型的结果集,同DDL(数据描述语言)的功能很类似。DAO可通过ODBC像直接连接到其它数据库一样,直接连接到Access数据库。DAO最适用于单系统应用程序或小范围本地分布使用。DAO模型是设计关系数据库系统结构的对象类的集合。它们提供了完成管理这样一个系统所需的全部操作的属性和方法,包括创建数据库,定义表、字段和索引,建立表间的关系,定位和查询数据库等工具。

3.3.2. RDO接口

远程数据对象RDO (Remote Data Objects)是一个到ODBC的面向对象的数据访问接口,它同易于使用的DAO Style组合在一起,提供了一个接口,形式上展示出所有ODBC的底层功能和灵活性。尽管RDO在很好地访问Jet或ISAM数据库方面受到限制,而且它只能通过现存的ODBC驱动程序来访问关系数据库,但是RDO己被证明是许多SQL Server,Oracle以及其他大型关系数据库开发者经常选用的最佳接口。

RDO提供了用来访问存储过程和复杂结果集的更多和更复杂的对象、属性以及方法。

3.3.3. ODBC接口

开放数据库互连ODBC(Open Database Connectivity)是微软公司开放服务结构(WOSA,     Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句传送给ODBC o

ODBC的出现实现了应用程序和后台数据之间的藕合。这样,在用户服务程序开发中无疑将降低软件部分和具体物理数据库之间的藕合程度,使得应用程序的实现结构更灵活。因为,只要保证对数据库的访问是基于ODBC之上的,就可以较灵活选择后台数据库管理系统的类型。这也为软件系统在不同的数据库之间进行移植奠定了基础。

ODBC连接目前仅仅限于关系型数据库,对于其他数据源如EXCEL,文本文件都不能进行访问,而且有很多DBMS都不能充分的支持其所有的功能。

3.3.4. ADO接口

ADO ( ActiveX Data Object)是DAO/RDO的后继产物。AD02.0在功能上与RDO更相似,而且一般来说,在这两种模型之间有一种相似的映射关系。ADO扩展了DAO和RDO所使用的对象模型,这意味着它包含较少的对象、更多的属性、方法和参数,以及事件。

作为最新的数据库访问模式,ADO的使用也很简单易用,而且微软公司己经明确表示今后将把研究重点放在ADO上,对DAO/RDO不再作升级,所以ADO己经成为了当前数据库开发的主流。

ADO涉及的数据存储有DSN(数据源名称)、ODBC以及OLE DB三种方式。要使用ADO,必须清楚ADO的对象层次结构。其大体可分为以下几个对象层次:

  1. Command对象:包含关于某个命令,例如:查询字符串、参数定义等的信息,Command对象在功能上和RDO的RDOQuery对象相似。
  2. Connection对象:包含关于某个数据提供程序的信息。Connection对象在功能上和RDO的RDOConnection对象是相似的,并且包含了关于结构描述的信息。它还包含某些RDOEnvironment对象的功能,例如Transaction控件。
  3. Error对象:包含数据提供程序出错时的扩展信息。Error对象在功能上和RDO的RDOError对象相似。
  4. Field对象:包含记录集中数据的某单个列的信息。Field对象在功能上和RDO的RDOColumn对象相似。
  5. Parameter对象:包含参数化的Command对象的某单个参数的信息。该Command对象有一个包含其所有Parameter对象的Parameters集合。Parameter对象在功能上和RDO的RDOParameter对象相似。
  6. Property对象:包含某个ADO对象的提供程序定义的特征。没有任何等同于该对象的RDO,但DAO有一个相似的对象。
  7. Recordset对象:用来存储数据操作返回的记录集。此对象和Connection对象是所有对象中最重要的两个对象。

在该人力资源管理系统的开发过程中,采用Visual Basic作为主要开发语言,因此可以利用其封装好的ADO组件来设计数据库程序。这样做有一个好处,就是不必了解数据的存取结构。

3.4  本系统数据库实现

3.4.1系统数据分析

1、数据录入和处理的准确性和实时性

数据的输入是否准确是数据处理的前提,错误的输入会导致系统输出的不正确和不可用,从而使系统的工作失去意义。数据的输入来源是手工输入。手工输入要通过系统界面上的安排系统具有容错性,并且对操作人员要进行系统的培训。

在系统中,数据的输入往往是大量的,因此系统要有一定的处理能力,以保证迅速的处理数据。

2、数据的一致性与完整性

由于系统的数据是共享的,在不同的题库类别中,题库是共享数据,所以如何保证这些数据的一致性,是系统必须解决的问题。要解决这一问题,要有一定的人员维护数据的一致性,在数据录入处控制数据的去向,并且要求对数据库的数据完整性进行严格的约束。

对于输入的数据,要为其定义完整性规则,如果不能符合完整性约束,系统将拒绝该数据。

3、数据的共享与独立性

整个题库发布系统的数据是共享的。然而,从系统开发的角度上看,共享会给设计和调试带来困难。因此,应该提供灵活的配置,使各个分系统能够独立运行,而通过人工干预的手段进行系统数据的交换。这样,也能提供系统的强壮性。

新建一个数据库

创建任何一个数据库的第一步是仔细的规划数据库,设计必须是灵活的、有逻辑的。创建一个数据库结构的过程被认为是数据模型设计。

  1. 标识需要的数据;
  2. 收集被标识的字段到表中;
  3. 标识主关键字字段;
  4. 绘制一个简单的数据图表;
  5. 规范数据;
  6. 标识指定字段的信息;
  7. 创建物理表。

修改已建的数据库

数据库的修改分为:添加、编辑和删除记录。这三种操作均可由Visual Basic 创建的程序来完成,下面的章节将详细描述实现的具体方法。

4、实现数据库之间的联系

数据库之间的关系指明两个库之间共享一个共同的关键字值。一个连接是指一种虚拟的表,这种表是在当用户要求从相互关联的各个不同的表中获取信息时建立的,关键字段用于在相互连接的不同表中查找匹配的记录。一个更高级的连接形式称为自连接。这种连接是指一个表被连接到它自己的一个字段,或在不同的纪录中由重复数据的组合字段。数据库中有三种不同类型的关键字:主关键字、组合关键字和外关键字。在表中使用的关键字类型用于描述库表示什么以及在数据库中如何与其它的库建立关系。

对表的行和列都有特殊的叫法,每一列叫做一个“字段”。每个字段包含某一专题的信息。就像“通讯录”数据库中,“姓名”、“联系电话”这些都是表中所有行共有的属性,所以把这些列称为“姓名”字段和“联系电话”字段。

我们把表中的每一行叫做一个“记录”,每一个记录包含这行中的所有信息,就像在通讯录数据库中某个人全部的信息,但记录在数据库中并没有专门的记录名,常常用它所在的行数表示这是第几个记录。

数据库的结构创建好了,接下来我们需要做的就是对数据库进行一系列的基本操作。

增加记录:在“数据表”视图或“窗体”视图中打开相应的窗体,单击工具栏上的“新记录“按钮 ,键入所需数据,然后按 TAB 键转至下一个字段,在记录末尾,按 TAB 键转至下一个记录。

编辑记录:如果要编辑字段中的数据,单击要编辑的字段,如果要替换整个字段的值,指向字段的最左边,在鼠标变为加号时,单击该字段,键入要插入的文本。

注意:如果键入有错,可按 BACKSPACE 键;如果要取消对当前字段的更改,按ESC 键;如果要取消对整个记录的更改,在移出该字段之前再次按 ESC 键,当从一个记录移动到其它记录时, Access 将保存对该记录的修改。

复制或移动数据:在其它应用程序,如Excel、Word中,选择要复制或移动的一至多行。如果是从Word中复制数据,应确保记录在选择之前已经在表中排列好或已经使用制表符分隔开,如果粘贴数据到数据表中,应确保数据表中的列与要复制或移动的数据的顺序一致,如果粘贴数据到窗体上,而窗体上相应的控件名称与复制数据的列名相同,Access 将粘贴数据到名称相同的控件上。在Access 中,打开要向其中粘贴记录的数据表或窗体,如果要替换现有记录,选择要替换的记录,然后单击工具栏上的“粘贴追加”或“粘贴”按钮 ;如果窗体中的记录选定器不可用,要选择当前记录,可单击“编辑”菜单中的“选择记录”命令。

删除记录:单击要删除的记录,单击工具栏上的“删除记录”按钮 。

3.4.2 SQL语言

SQL是英文(Structured Query Language)的缩写,意思为结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。目前,绝大多数流行的关系型数据库管理系统,如Oracle, Sybase, Microsoft SQL Server, Access等都采用了SQL语言标准。

SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集,所有SQL 语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。

SQL不要求用户指定对数据的存放方法, 这种特性使用户更易集中精力于要得到的结果;所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段,查询优化器知道存在什么索引,在哪儿使用索引合适,而用户则从不需要知道表是否有索引、有什么类型的索引。

SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、 应用程序员、决策支持系统人员及许多其它类型的终端用户。基本的SQL 命令只需很少时间就能学会,最高级的命令在几天内便可掌握。

以把“SQL”读作“sequel”,也可以按单个字母的读音读作S-Q-L。

第一个特点是所有SQL数据库中的数据都存储在表中。一个表由行和列组成。例如,下面这个简单的表包括name 和e-mail address:

Name Email Address

Bill Gates billg@microsoft.com

president Clinton president@whitehouse.com

Stephen Walther swalther@somewhere.com

这个表有两列(列也称为字段,域):Name和Email Address。有三行,每一行包含一组数据。一行中的数据组合在一起称为一条记录。

无论何时向表中添加新数据,就添加了一条新记录。一个数据表可以有几十个记录,也可以有几千甚至几十亿个记录。虽然也许永远不需要存储十亿个Email地址,但知道能这样做总是好的,也许有一天会有这样的需要。

数据库很有可能包含几十个表,所有存储在数据库中的信息都被存储在这些表中。当考虑怎样把信息存储在数据库中时,应该考虑怎样把它们存储在表中。

SQL的第二个特点有些难于掌握。这种语言被设计为不允许按照某种特定的顺序来取出记录,因为这样做会降低SQL Sever取记录的效率。使用SQL,只能按查询条件来读取记录。

当考虑如何从表中取出记录时,自然会想到按记录的位置读取它们。例如,也许会尝试通过一个循环,逐个记录地扫描,来选出特定的记录。

综上所述,SQL有两个特点:所有数据存储在表中,从SQL的角度来说,表中的记录没有顺序。

1、常用的SQL语句

SQL为许多任务提供了命令,其中包括:

  • 查询数据
  • 在表中插入、修改和删除记录
  • 建立、修改和删除数据对象
  • 控制对数据和数据对象的存取
  • 保证数据库一致性和完整性

以前的数据库管理系统为上述各类操作提供单独的语言,而SQL 将全部任务统一在一种语言中。

是所有关系数据库的公共语言

由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS(关系数据库管理系统)转到另一个,所有用SQL编写的程序都是可以移植的。

2、SQL语言的分类及语法

可执行的SQL语句的种类数目之多是惊人的。使用SQL,你可以执行任何功能:从一个简单的表查询,到创建表和存储过程,到设定用户权限。在这个章节中,我们将重点讲述如何从数据库中检索、更新和报告数据,也是基于这个目的,我们应该了解的最重要的SQL语句是:

  • SELCET
  • INSERT
  • UPDATE
  • DELETE
  • CREAT
  • DROP

3.4.3 Access数据表

1、人事表

人事表里存储了人事的档案包括:编号,姓名,.年龄,部门,.职级,婚姻状况,文化程度,工作年数,联系电话,家庭住址,身份证号码

表3.1 人事表

字 段 名

数 据 类 型

数 据 长 度

编号

文本型(char)

50

姓名

文本型(char)

50

年龄

文本型(char)

50

部门

文本型(char)

50

职级

文本型(char)

50

婚姻状况

文本型(char)

50

文化程度

文本型(char)

50

工作年数

文本型(char)

50

联系电话

文本型(char)

50

个人简历

备用型(char)

100

家庭住址

文本型(char)

50

身份证号码

文本型(char)

50

该表主要完成人事基本信息的录入、删除 、更新等功能

2、工资表:

工资表里存储了可进入员工工资条数据:编号,姓名,密码

表3.2 工资表

字 段 名

数 据 类 型

数 据 长 度

姓名

文本型(char)

50

基本工资

货币型

50

浮动工资

货币型

50

工龄工资

货币型

100

奖金

货币型

10

补贴

货币型

10

福利

货币型

10

应发

货币型

10

病假

货币型

10

事假

货币型

10

保险

货币型

10

其他

货币型

10

实发

货币型

10

该表主要完成员工工资数据的录入、删除 、更新等功能

3、用户表:

用户表里存储了可进入数据库的用户名和密码包括:编号,姓名,密码。

表3.3 用户表

    字 段 名      

   数 据 类 型

   数 据 长 度

用户名

文本型(char)

50

密码

文本型(char)

50

该表主要完成用户的增加、删除 、更新等功能

4、家庭关系表:

家庭关系表里存储了可进入数据库的用户名和密码包括:,姓名,密码。

表3.4 家庭关系表

    字 段 名      

   数 据 类 型

   数 据 长 度

ID

数值型(int)

10

姓名

文本型(char)

50

家庭成员姓名

文本型(char)

50

关系

文本型(char)

50

工作单位

文本型(char)

50

籍贯

文本型(char)

50

该表主要完成用户的增加、删除 、更新等功能

3.4.4 与VB的连接

Visual Basic提供了与底层数据库系统紧密的连接。Visual Basic 支持不同的关系数据库管理系统并充分发挥每一个数据库的特长。生成独立应用或脱离服务器运行的服务以上的应用,Visual Basic连接数据库的方式有两种:

  1. 通过使用Visual Basic的 ADO控件。
  2. 通过使用由Visual Basic提供的专用的直接与数据库相连的接口

本系统主要通过使用ADO控件实现与ACCESS数据库的连接,

ADO 控件在数据库中的信息与将信息显示给用户看的Visual Basic程序之间架起了一座桥梁。我们可以设置ADO控件的各个属性,告诉它要调用那个数据库的哪个部分。缺省情况下,ADO控件根据数据库中的一个或多个数据表建立一个dynaset-type(动态集合)类型的记录集合。一个记录集合是动态的也就意味着,当原来的数据表中的容改变了以后,该记录集合中的记录也会随之改变。ADO控件还提供了用来浏览不同记录的各种跳转按钮。将ADO控件放置在窗体中之后,我们还必须在该控件与要处理的数据库之间建立联系。

ADO(ActiveX Data Objects)是基于组件的数据库编程接口,它是一个和编程语言无关的COM组件系统。本文主要介绍用ADO编程所需要注意的技巧和在VC下进行ADO编程的模式,并对C++Extensions进行了简单的讨论,希望对ADO开发人员有一定的帮助作用。因为ADO是一个和编程语言无关的COM组件系统,所以这里讨论的要点适用于所有的编程语言和编程环境,比如:VB、VBScript、VC、Java等等。

对于ADO其中对象来说,我觉得比较重要是:Command,Connection,Recordset对象。

虽然严格的说这是不准确的,但根据我的实际经验确实如此,下面就分别来谈一下。

1、 Connection对象

Connection对象用于建立与数据库的连接.通过连接可从应用程序访问数据源.它保存诸如指针类型,连接字符串,查询超时,连接超时和缺省数据库这样的连接信息.

2、 Command对象在建立Connection后,可以发出命令操作数据源.一般情况下,Command对象可以在数据库中添加,删除或更新数据,或者在表中进行数据查询.Command对象在定义查询参数或执行一个有输出参数的存储过程时非常有用.

3、 Recordset对象

Recordset对象只代表一个记录集,这个记录集是一个连接的数据库中的表,或者是Command对象的执行结果返回的记录集。在ADO对象模型中,是在行中检查和修改数据的最主要的方法,所有对数据的操作几乎都是在Recordset对象中完成的.Record对象用于指定行、移动行、添加、更改、删除记录。

下面就具体地说说如何用ADO存取数据:

  1. 在实际编程过程中使用ADO的一个典型的存取数据的步骤为:
    1. 连接数据源
    2. 打开记录集对象
    3. 使用记录集
    4. 断开连接

那么具体怎么是用呢?分别来看.

    1. 如何连接数据源

利用Connection对象可以创建一个数据源的连接.应用的方法是Connection对象的Open方法。

语法:

Connection对象.Open ConnectionString, UserID, PassWord, OpenOptions

其中:

Connection对象为你定义的Connection对象的实例;

ConnectionString为可选项,包含了连接的数据库的信息;

UserID 可选项,包含建立连接的用户名;

PassWord为可选项,包含建立连接的用户密码;

OpenOptions为可选项,假如设置为adConnectAsync,则连接将异步打开。

    1. 打开记录集对象

实际上记录集返回的是一个从数据库取回的查询结果集.因此他有两种打开方法:一种使用记录集的Open方法,另一种是用Connection对象的Execute方法。

  1. 记录集的Open方法

语法:
Recordset.Open Source, ActiveConnection, CursorType, LockType, Options

其中:

Recordset为所定义的记录集对象的实例。

Source可选项,指明了所打开的记录源信息,可以是合法的命令,对象变量名,SQL语句,表名,存储过程调用,或保存记录集的文件名.

ActiveConnection可选项,合法的已打开的Connection对象的变量名,或者是包含ConnectionString参数的字符串.

CursorType可选项,确定打开记录集对象使用的指针类型.

LockType可选项 确定打开记录集对象使用的锁定类型.

  1. Connection对象的Execute方法

语法:

Set recordset=Connection.Execute(CommandText,RecordsAffected,Options)

参数说明:

CommandText 一个字符串,返回要执行的SQL命令,表名,存储过程或指定文本.

RecordsAffected 可选项,Long类型的值,返回操作影响的记录数.

Options 可选项,Long类型值,指明如何处理CommandText参数.

介绍完了如何打开数据库下面说说怎么使用吧.

(3)使用记录集

(a)添加新的记录:

在ADO中添加新的记录用的方法为:AddNew 它的语法为:

Recordset.AddNew FieldList, Values

Recordset为记录集对象实例

FieldList为一个字段名,或者是一个字段数组.

Values为给要加信息的字段赋的值,如果FiledList为一个字段名,那么Values应为一个单个的数值,假如FiledList为一个字段数组,那么Values必须也为一个个数,类型与

FieldList相同的数组

再用完AddNew方法为记录集添加新的记录后,应使用UpDate将所添加的的数据存储在数据库中.不过你最好在用UpDate方法之前使用CancelUpdate方法来取消该项操作.

  1. 修改记录集

其实修改核对记录集中的数据重新赋值没有什么太大的区别,只要用SQL语句将要修改的字段的一个数据找出来重新赋值就可以了.这里不再细说了.

  1. 删除记录

在ADO中删除记录集中的数据的方法为:Delete方法,这与DAO对象的方法相同,但是在ADO中它的能力增强了,可以删掉一组记录了.

它的语法如下:

Recordset.Delete AffectRecords

其中的,AffectRecords参数是确定Delete方法作用的方式的,它的取值如下:

adAffectCurrent 只删除当前的记录

adAffectGroup 删除符合Filter属性设置的那些记录.为了一次能删除一组数据,应设置Filter属性.

  1. 查询记录

在ADO中查询的方法很灵活,有几种查询的方法.

●使用连接对象的Execute方法执行SQL命令,返回查询记录集.

●使用Command对象的Execute方法执行CommandText属性中设置的SQL命令,返回查询记录集.

第一个方法的具体语法在前面数据连接时已经介绍过了,下面就第二方法具体说一下.

Command对象的Execute方法的语法如下:

Command.Execute RecordsAffected, Parameters, Options '不返回记录或者 Set Rscordset=cmmnad.Execute(RecordsAffected,Parameters,Options) '返回记录集

CommandText的语法为:

Command.CommandText=stringvariable

其中: stringvariable为字符串变量,包含SQL语句,表名或存储过程.

    1. 断开连接

在应用程序结束之前,应该释放分配给ADO对象的资源,操作系统回收这些资源并可以再分配给其他应用程序.

使用的方法为:Close方法.

语法如下:

Object.Close ' Object为ADO对象

第四章 系统模块的设计和实现

4.1  用户登录界面的实现

为了理解应用程序开发过程,先要理解 Visual Basic 赖以创建的一些关键概念。因为 Visual Basic 是 Windows 开发语言,所以有必要与 Windows 环境保持一定的相似性。如果不熟悉 Windows 编程,就需要明白在 Windows环境下编程和在其它环境下编程的一些根本性的差别。

    1. Windows 的工作方式:窗口、事件和消息

全面地讨论 Windows 的内部工作机制将需要整整一本书的容量。没有必要深入了解所有的技术细节。Windows 的工作机制,简单地说就是三个关键的概念:窗口、事件和消息。

不妨简单地将窗口看作带有边界的矩形区域。也许已经了解几种不同类型的窗口:如,Windows 95 的“资源管理器”窗口、文字处理程序中的文档窗口或者弹出提示有约会信息的对话框。除了这些最普通的窗口外,实际上还有许多其它类型的窗口。命令按钮是一个窗口。图标、文本框、选项按钮和菜单条也都是窗口。

Microsoft Windows 操作系统通过给每一个窗口指定一个唯一的标识号(窗口句柄或 hWnd)来管理所有的窗口。操作系统连续地监视每一个窗口的活动或事件的信号。事件可以通过诸如单击鼠标或按下按键的操作而产生,也可以通过程序的控制而产生,甚至可以由另一个窗口的操作而产生。

每发生一次事件,将引发一条消息发送至操作系统。操作系统处理该消息并广播给其它窗口。然后,每一个窗口才能根据自身处理该条消息的指令而采取适当的操作(例如,当窗口解除了其它窗口的覆盖时,重显自身窗口)。

可以想像,处理各种窗口、事件和消息的所有可能的组合将有惊人的工作量。幸运的是,Visual Basic 使您摆脱了所有的低层消息处理。许多消息由Visual Basic 自动处理了,其它的作为事件过程由编程者自行处理。这样可以快速创建强大的应用程序而毋需处理不必要的细节。

    1. 事件驱动模型

在传统的或“过程化”的应用程序中,应用程序自身控制了执行哪一部分代码和按何种顺序执行代码。从第一行代码执行程序并按应用程序中预定的路径执行,必要时调用过程。

在事件驱动的应用程序中,代码不是按照预定的路径执行,而是在响应不同的事件时执行不同的代码片段。事件可以由用户操作触发,也可以由来自操作系统或其它应用程序的消息触发,甚至由应用程序本身的消息触发。这些事件的顺序决定了代码执行的顺序,因此应用程序每次运行时所经过的代码的路径都是不同的。

因为事件的顺序是无法预测的,所以在代码中必须对执行时的“各种状态”作一定的假设。当作出某些假设时(例如,假设在运行来处理某一输入字段的过程之前,该输入字段必须包含确定的值),应该组织好应用程序的结构,以确保该假设始终有效(例如,在输入字段中有值之前禁止使用启动该处理过程的命令按钮)。

在执行中代码也可以触发事件。例如,在程序中改变文本框中的文本将引发文本框的 Change 事件。如果 Change 事件中包含有代码,则将导致该代码的执行。如果原来假设该事件仅能由用户的交互操作所触发,则可能会产生意料之外的结果。正因为这一原因,所以在设计应用程序时理解事件驱动模型并牢记在心是非常重要的。

    1. 交互式开发

传统的应用程序开发过程可以分为三个明显的步骤:编码、编译和测试代码。但是 Visual Basic 与传统的语言不同,它使用交互式方法开发应用程序,使三个步骤之间不再有明显的界限。

在大多数语言里,如果编写代码时发生了错误,则在开始编译应用程序时该错误就会被编译器捕获。此时必须查找并改正该错误,然后再次进行编译,对每一个发现的错误都要重复这样的过程。Visual Basic 在编程者输入代码时便进行解释,即时捕获并突出显示大多数语法或拼写错误。看起来就像一位专家在监视代码的输入。

除即时捕获错误以外,Visual Basic 也在输入代码时部分地编译该代码。当准备运行和测试应用程序时,只需极短时间即可完成编译。如果编译器发现了错误,则将错误突出显示于代码中。这时可以更正错误并继续编译,而不需从头开始。

由于 Visual Basic 的交互特性,因此可以发现在开发应用程序时,您自己正频繁地运行着您的应用程序。通过这种方式,代码运行的效果可以在开发时进行测试,而不必等到编译完成以后。

以下是人力资源管理系统用户登录界面的实现

用户登录界面如图所示


图4.1 登录界面

在工程引用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表没有该用户,将无法使用本程序

4.2  系统各模块的实现

系统主界面如图所示:

图4.2 系统主界面

主界面包含几方面的内容,以下一一介绍各个模块的实现

4.2.1 基本信息模块

基本信息模块:作用是查看基本的人事信息

图4.3 员工信息界面

通过ADO控件连接到数据库的RS表,通过SQL语句

“SELECT rs.编号, rs.姓名, rs.年龄, rs.部门, rs.职级, rs.婚姻状况, rs.文化程度, rs.工作年数, rs.联系电话, rs.家庭住址, rs.身份证号码

FROM rs;“   筛选出全部记录

用TEXT控件,将它的数据源设为ADO控件,将它的各列显示出数据库的各列。属性设为可写。

Private Sub Command1_Click()

On Error Resume Next

Adodc1.Recordset.AddNew    //   添加记录

End Sub

Private Sub Command2_Click()

On Error Resume Next

Adodc1.Recordset.Delete    //   删除记录

End Sub

4.2.2 工资信息管理模块

工资管理包括:工资录入,编辑,修改,查询,计算,统计

图4.4 员工管理界面

通过ADO控件连接到数据库的车间工人管理表

用控件,将它的数据源设为ADO控件,将它的各列显示出数据库的各列。

Private Sub Command1_Click()

On Error Resume Next

Adodc1.Recordset.AddNew    //   添加记录

End Sub

Private Sub Command2_Click()

On Error Resume Next

Adodc1.Recordset.Delete    //   删除记录

End Sub

4.2.3 家庭关系信息模块

家庭关系信息模块:家庭信息录入,编辑,修改

图4.5 家庭信息管理界面

通过ADO控件连接到数据库的科室人员情况表

用TEXT控件,将它的数据源设为ADO控件,将它的各列显示出数据库的各列。

Private Sub Command1_Click()

On Error Resume Next

Adodc1.Recordset.AddNew     //  添加记录

End Sub

Private Sub Command2_Click()

On Error Resume Next

Adodc1.Recordset.Delete     //  删除记录

End Sub

4.2.4 企业部门管理模块

企业部门管理包括各部门信息的录入,编辑,修改,作用是设定可以进入数据库的人员,同时设定部门。

图4.6 企业部门管理界面

通过ADO控件连接到数据库的BUMEN表,通过SQL语句筛选出全部记录。 用DATA GRID控件,将它的数据源设为ADO控件,将它的各列显示出数据库的各列。属性设为可写。

Private Sub Command1_Click()

On Error Resume Next

Adodc1.Recordset.AddNew    //   添加记录

End Sub

Private Sub Command2_Click()

On Error Resume Next

Adodc1.Recordset.Delete   //   删除记录

End Sub

4.2.5 信息查询模块

信息查询模块包括各种信息的查询

图4.7 信息查询界面

这里就列出组合查询源代码进行说明:

Private Sub Command6_Click()

ss2 = Text2.Text                        设定4个变量

ss3 = Text3.Text

ss4 = Text4.Text

ss5 = Text5.Text

Adodc1.RecordSource = "SELECT *  FROM RS where " + ss2 + "='" + ss4 + "' and  " + ss3 + "='" + ss5 + "'"

Adodc1.Refresh

    字段1=变量SS1  值=SS2      字段2=变量SS3  值=SS4

End Sub

4.2.6 用户管理模块

用户管理模块包括系统数据的安全保密,设定系统用户

图4.7 用户管理界面

通过ADO控件连接到数据库的USER表,通过SQL语句

“SELECT user.user, user.pass  FROM [user];”筛选出全部记录。 用DATA GRID控件,将它的数据源设为ADO控件,将它的各列显示出数据库的各列。属性设为可写。

Private Sub Command1_Click()

On Error Resume Next

Adodc1.Recordset.AddNew    //   添加记录

End Sub

Private Sub Command2_Click()

On Error Resume Next

Adodc1.Recordset.Delete     //  删除记录

End Sub

4.2.7 打印报表模块

打印报表。

图4.8 打印报表界面

第五章    

5.1  系统测试策略说明

  1. 整个系统界面窗口的测试项目:

① 系统能否正确打开?有无出错提示?

② 系统中的数据内容能否用鼠标和键盘输入及访问?

③ 有关的下拉菜单、工具条、对话框、按钮、图标和其他控制窗口使用是否正常?

④ 显示的页面程序是否正常显示,读数据库时是否有出错?

⑤ 业务流程是否合理,是否适合用户的操作?

  1. 数据项测试项目:

① 能否识别输入数据的类型,长度?

② 自定义的异常处理是否能保护系统在不正确的操作下运行,能否识别非法数据?

③ 数据库在大量的数据输入输出时间能否正常运行?

④ 日期、小数、整数等数值数据是否处理正确?

        ⑤ 数据写入数据库时,数据是否写入对应的字段?

5.2  测试报告

管理员用户登录模块的整体测试  

测试日期:2006-6-15 早上 9:00-12:00  测试人:陈海雁

 5.2.1 测试目的:

1、验证该模块是否达到所需求的功能和性能。

2、安全子系统的缺陷和不足。

3、页面运行是否达到标准。

4、验证能否正常添加系统用户。

5.2.1测试结果:

1、系统能够提供用户登录验证功能,并且用户名和用户编号是唯一的;

2、系统能够正确处理用户的添加。

3、系统能够对非法用户具有警告功能。

4、用户可执行各功能模块操作。

5、各工作流程可以正常运行。

说明:本系统是我的毕业设计,因时间有限不能非常详细地做测试及写完整的测试流程,而且测试只有我一个人,所以测试的准确性可能会受到影响。

5.3  测试用例

以管理员添加员工信息为例:

图5.1 添加员工信息

测试数据:选择编号以“111”为例,做三次测试。

预期结果:第一选输入姓名“1111”,年龄:“21”,按“添加”要成功写入数据库。

          第二次输入相同数据,按“提交”,系统提示错误(“该员工已经添加了”)

          第三次输入不同姓名,按“提交”,系统提示错误(“该编号员工已添加,请重新输入编号”)

测试报告:本次测试与预期结果一样能正确处理各项数据。

章 系统工作总结及展望

6.1 系统工作总结及改进方向

经过一个多月的设计和开发,该人力资源管理系统基本开发完毕。其功能基本符合客户需求,能够完成人事存储并提供部分系统维护功能,使用户方便进行数据备份和恢复、数据删除,对于数据的一致性的问题也通过程序进行了有效的解决。但是由于毕业设计时间以及水平有限,所以该系统还有许多不尽如人意的地方,比如功能较少等多方面问题。这些都有待进一步改善.也希望老师们能够多多指教,好让我能够不断进步。

6.2 展望

目前,本管理系统已基本实现了预定的功能,大部分子系统的功能己经实现,但是如人力成本等子系统还有待于进一步完善。该管理系统的测试版已经在该公司投入试运行,达到了课题预期的目的。应用结果表明,系统实现了数据共享,加快了数据传递和处理速度,提高了人力资源部门的管理水平和工作效率,使他们从繁杂的劳动中摆脱了出来,从而实现了该公司人力资源的全过程、全方位的信息控制和管理,为企业发展和人力资源决策提供详实的数字依据。

但是该人力资源管理系统的设计与开发是一项工作量巨大的工程,涉及到现代人力资源管理理论和MIS等多方面的知识,由于时间的不足和水平有限,操作交互界面的美化和改进,以及C/S与B/S模式的结合等问题,还有待于今后进一步的完善和规范。

致   

本毕业设计的完成,首先要感谢母校---中央广播电视大学及汕尾分校的辛勤培育之恩,给我提供了很好的学习环境和设计环境,使我学到了许多新的知识。  

本毕业设计是在刘永乐副教授的指导下完成的, 刘老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅;另外,班主任孙甲泉老师的支持和鼓励也为我继续前进提供了无限动力。每当遇到困难无法进行下去时,她们都能给我充足的信心和力量,我的毕业设计和论文才得以顺利完成,在此我衷心地对她们说声:谢谢你们!

参考文献

[1] 雷蒙德·A·诺伊,约翰. 霍伦拜克,拜雷·格哈特,帕特雷克·莱特,刘昕.人力资源管理(第三版)[M].北京:中国人民大学出版社出版.2001.

[2] 刘凌,江海,尹绍峰.基于多层(三层)体系结构的人力资源系统[J].湖南轻工业高等专科学校学报.

[3] Sean P Alexander.Microsoft  Advanced  Visual  Basic 6.0 Second Edition[M].美国:The Mandelbrot  Set  International  Ltd,1998.

[4] 李华飚,毕宗睿,李水根.VISUAL BASIC数据库编程[M].北京:人民邮电出版社,2004.

[5] 王珊,陈红.数据库系统原理教程[M].北京:清华大学出版社,2003.

[6] 苏中滨,杨涛,陈联成.数据库系统概念与应用[M].北京:中国水利水电出版社,2003.

[7] 李爱中,周成云,马务充.数据库系统教程[M].北京:机械工业出版社, 2004.

[8] 孙越.VISUAL BASIC 数据库开发自学教程[M].北京:人民邮电出版社,2004.

附录一 程序源代码

1、FORM1(登录模块)

Private Sub Command1_Click()

mname = Text1.Text

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)='" + mname + "';", mycn, adOpenKeyset, adLockOptimistic

If myrs.BOF = True And myrs.EOF = True Then

MsgBox "查无此人", , "登陆信息"

Else

      

     If myrs("pass") = pass Then

        

         ''''''''''''''''''''''''''''''''''''''''''

        MsgBox "ok", , "登陆信息"

         MDIForm1.Show

         

         Unload Me

             

           '''''''''''''''''''''''''''''''''''''''''''''''''''

     Else

        MsgBox "密码不正确", , "登陆信息"

     End If

   End If

  End Sub

Private Sub Form_DblClick()

MsgBox "hello"

End Sub

Private Sub Form_Load()

Dim mname As String

Dim pass As String

End Sub

2、FORM5(企业部门管理模块)

Private Sub DataList1_Click()

ss = DataList1.Text

Adodc2.RecordSource = "SELECT *  FROM rs where 部门='" + ss + "'"

Adodc2.Refresh

Adodc3.RecordSource = "SELECT *  FROM bumen where 部门='" + ss + "'"

Adodc3.Refresh

End Sub

Private Sub Form_Load()

End Sub

Private Sub Label1_Click()

End Sub

3、FORM7(家庭信息)

Private Sub Command1_Click()

ss = Text1.Text

Adodc1.RecordSource = "SELECT *  FROM jiating where 籍贯='" + ss + "'"

Adodc1.Refresh

End Sub

4、FORM8(信息查询模块)

Private Sub Command2_Click()

ss = Text1.Text

Adodc1.RecordSource = "SELECT *  FROM rs where 姓名='" + ss + "'"

Adodc1.Refresh

End Sub

Private Sub Command3_Click()

ss = Text1.Text

Adodc1.RecordSource = "SELECT *  FROM rs where 部门='" + ss + "'"

Adodc1.Refresh

End Sub

Private Sub Command4_Click()

ss = Text1.Text

Adodc1.RecordSource = "SELECT *  FROM rs where 学历='" + ss + "'"

Adodc1.Refresh

End Sub

Private Sub Command5_Click()

ss = Text1.Text

Adodc1.RecordSource = "SELECT *  FROM rs where 性别='" + ss + "'"

Adodc1.Refresh

End Sub

Private Sub Command6_Click()

ss2 = Text2.Text

ss3 = Text3.Text

ss4 = Text4.Text

ss5 = Text5.Text

Adodc1.RecordSource = "SELECT *  FROM rs where " + ss2 + "='" + ss4 + "' and  " + ss3 + "='" + ss5 + "'"

Adodc1.Refresh

End Sub

5、FORM13(工资管理模块)

Private Sub Command1_Click()

Adodc1.RecordSource = "SELECT *  FROM gshj "

Adodc1.Refresh

End Sub

Private Sub Command2_Click()

ss = Text1.Text

Adodc1.RecordSource = "SELECT *  FROM gshj where 姓名='" + ss + "'"

Adodc1.Refresh

End Sub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

等天晴i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值