您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页张帆 计算机-员工信息查询系统讲解

张帆 计算机-员工信息查询系统讲解

来源:意榕旅游网


论文提纲

一、可行性研究 (一)技术可行性 (二)经济可行性 (三)营运可行性 二、系统总体设计 (一)开发工具平台 (二)数据库分析 (三)数据流图 (四)系统功能结构图 三、详细设计 (一)登陆窗口子模块 (二)学生档案资料录入子模块 (三)档案信息查询子模块 (四)学生成绩录入子模块 (五)学生成绩查询子模块 (六)学生学籍导入子模块 (七)学生学籍管理子模块 (八)系统菜单

学生学籍管理系统

【摘要】学生学籍管理系统被广泛应用于各类学校的学生学籍

管理工作中,要求其具有实用性强、使用方便、效率高和安全可靠等特点。本管理系统正是围绕以上几个方面进行开发的,在开发过程中充分考虑到本系统的应用特点,并进行了大量的检验,证明其的确达到了设计的要求,是一个已具备了实际应用能力的软件。本文主要论述学生学籍管理系统的开发过程。在涉及到VB及Access中的部分知识以举例的方式进行讲解。

【关键词】学生档案管理;查询;窗体;模块

学生档案管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生档案管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。

随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

作为计算机应用的一部分,使用计算机对学生档案信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生档案管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。

因此,开发这样一套管理软件成为很有必要的事情,在下面的各章中我将以开发学生档案管理系统为例,谈谈其开发过程和所涉及到的问题及解决方法。 现在我国的中小学校中档案的管理水平还停留在纸介质的基础上,这样的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。

1

一、可行性研究

可行性研究是系统分析阶段的第二项活动。此活动的主要目标是:进一步明确系统的目标、规模与功能,对系统开发背景、必要性和意义进行调查分析并根据需要和可能提出开发系统的初步方案与计划。可行性研究是对系统进行全面、概要的分析。

通过调查分析,新系统设计方案有以下三个可行性:

(一)技术可行性:

本系统采用MS Windows 98作为操作平台。数据库开发平台选用Ms Visual Foxpro 6,该数据库管理系统在MS Windows 98和MS Windows 2000 Professional上都能运行,并提供数据库之间的数据复制功能,可代替现有系统单据数据的手工传递工作,降低出错率,提高数据的可用性。本系统的应用软件开发平台也选用Ms Visual Foxpro 6,这是目前数据库应用软件的主流开发平台。

(二)经济可行性:

采用新的学籍信息管理系统可取代原系统的单据手工传递工作,减少人工开支,节省资金,并且可大大提高信息量的取得,缩短信息处理周期,提高学生信息的利用率,使教学质量更上一个台阶。

(三) 营运可行性:

本系统操作简单,易于理解,只需通过简单培训,上手较快,学校学籍管理处的教职员以及相关教师均能进行操作,营运环境要求低。面对于系统设计还应该以“标准性、安全性、兼容性、高效性、保密性、可维护性”为标准,在着眼于当前实用的基础上,为将来系统的扩展,升级留有余地。软件的开发应 能在较长时间内满足学校的发展需要。故新系统还需要满足以下这几个标准:

(1) 标准性:系统的软硬件选型都应该采用工业化标准,这样既可以保证系统运行质量又可以分享在此标准上的每一次技术进步。

(2) 可靠性:由于学籍信息的重要性,系统的软硬件应均为质量可靠,并采用RAID 0+1廉价磁盘冗余保护技术,确保不会由于软硬件故障造成系统运行终止而使用户蒙受损失。

2

(3) 安全性:通过软件的编制及硬件设置,控制使用者接触数据的权限,从而确保使用者无法操作与其无关的数据。

(4) 兼容性:系统的所有软硬件理论上都应有100%的兼容性,用以保证软硬件的可互换性。

(5) 高效性:由于学校学生信息每次处理的信息量较大,因此系统对信息的处理能力,响应能力都应是快速而有效的,在软件编制过程中应充分考虑到这一点。

(6) 可维护性:系统软件设计时应采用结构化模块设计,以便于开发和维护,也有利于根据情况随时进行功能调整。同时在系统开发时应该充分考虑到用户的日常维护,使之能简便易行通过可行性分析研究,认为新系统的开发方案切实可行,可进行开发。

二、系统总体设计

(一)开发工具平台

Visual Basic 6.0 中文版是Microsoft公司最新推出的可视化开发工具,是Visual Basic语言的最新版本,与前期版本相比,增加了许多新的功能。Visual Basic是在原有Basic语言基础上的进一步发展,它包含了数百条语句、函数及关键词,其中有很多与Windows GUI有直接关系。Visual Basic语言简单易学,只要稍有语言基础就可以很快掌握并进而精通。可视化的用户界面设计功能,把程序设计人员从繁琐复杂的界面设计中解脱出来;可视化编程环境的“所见即所得功能(WYSIWYG)”功能,使界面设计如同积木游戏一般,编程变成了一种享受;强大的多媒体功能可以轻而易举的开发出及声音、动画、影像、和图片于一体的多媒体应用程序;新增的网络功能提供了编写Internet程序的能力。Visual Basic 6.0 中文版还支持用户自己开发ActiveX控件和制作ActiveX文档。

作为高质量的开发软件,Visual Basic 6.0 中文版有如下优点: 1、完全中文化的环境使用户更容易操作,用户在几分钟内,就可以熟悉Visual Basic 6.0 的开发环境。

2、语句生成器和快速提示帮助使用户不必记忆成千上万的属性和方法,在较短的时间内就能开发出功能强大的应用程序。

3、在Visual Basic 6.0中,Internet应用程序的开发功能更加强大和容

3

易。

4、种类繁多、功能强大的多媒体控件。

5、Visual Basic 6.0 在数据库处理功能上有较大增强,能对多种数据库进行读写操作。

6、新的语言特征。

7、【应用程序安装向导】大大加快了程序的开发速度。

(二)数据库表结构设计

根据分析阶段得出的的结论,结合本系统对有关数据的存储的需要,更加方便实现该学籍管理开发系统的所有功能。现将本系统设计成6个数据库表,每个表的字段名、类型、宽度设计如下:

(1)学生基本信息表

该表用来存放学生入学注册的个人基本信息。

字段名 学籍号 姓名 性别 出生年月 班级 家庭住址 父母姓名 联系电话 毕业级别 奖惩记载 学生简历

设计说明:为方便编程以及人们工作习惯,这里将学籍号、出生年月、联系电话等都设计成字符型。并根据实际需要设计了相应的宽度。

(2)学生成绩表

4

类型 字符型 字符型 字符型 字符型 字符型 字符型 字符型 字符型 字符型 字符型 字符型 宽度 10 2 10 10 8 11 30 10 10 10 10

该表用来存放学生在校期间的个人成绩信息。

字段名 学号 姓名 科目 成绩 学期

(3)学生学籍表

用来存放学生在校期间的评语信息。

字段名 学号 姓名 奖贷学金 异动 军训等级 毕业去向

(4)教学计划表 用来存放教学信息。

字段名 课程号 课程名 学分 年级 备注 类型 字符型 字符型 数字型 字符型 备注型 宽度 10 10 2 10 4 类型 字符型 字符型 字符型 字符型 备注型 备注型 宽度 10 10 10 8 0 0 类型 字符型 字符型 数字型 数字型 数字型 宽度 10 8 3 3 3 另外,系统还设置用户管理表。字段包括:用户帐号,用户密码,级别,联系电话。

(三)数据流图

5

数据流图描绘系统的逻辑模型图,其中没有任何具体的物理元素,只是描绘信息在系统中流动和处理的情况。因为数据流图是逻辑系统的图形表示,即使不是专业的计算机技术人员也容易理解,所以是极好的通信工具。此外,设计数据流图只需考虑系统必须完成的基本逻辑功能,完全不需要考虑如何具体地实现这些功能,所以它也是软件设计的很好的出发点。

《学籍管理系统》主要是为了对学生基本信息、成绩、学籍等进行计算机管理。所以主要的数据源应是学生的各种信息。

(1)学生基本信息流程图

F2 XSXJ 添加新记录 修改记录 F1 XSDA 学号等 输入学生 检查是 信息 信息资料 否注册 删除记录 检索记录 窗体 报表 F1 XSDA 流程图分析:

从流程图上可以看出:学生基本信息的流动首先是以学籍号的特征为流动方向的依据。非0学号可以继续流动,并检验数据库学生档案表检查是否已经注册,已经注册的信息可以修改、查询、并将查询结果报表。未注册的信息可以录入到数据库中。为了数据的一致性,这里添加记录的同时,也对数据库中的另一表学生学籍表记录对应的学籍号,姓名。这里可以分析得出:要实现学生基本信息的流动,需要设计一个学生基本信息数据库表(XSDA),学生学籍数据库表(XSXJ)。并对该数据库表可以实现信息的录入、修改、查询、统计、报表。

(2)学生成绩信息流程图

F3 XF

>=60 .T. 修改

F4JXJH 6

添加新记录 修改记录 F2 XSCJXX 学号 输入学生 检查是 科目 相应成绩 否注册 删除记录 检索 表单 报表 F2XSCJXX 统计 表单 报表 统计条件 输入 条件 流程图分析:

从流程图上可以看出:学生成绩信息的流动同样是以学籍号的特征为流动方向的依据。系统首先输入学籍号,科目,考试时间等信息,系统首先校验是否已经记录,对没有记录的成绩可以实现添加到成绩表中,同时判断成绩是否大于等于60分,对大于等于60分的成绩同时对该学籍号的学生将其对应的学分表中的学分记录修改。修改的标准是依据该科目教学计划中的设置的学分为依据。这里同样可以分析得出:要实现学生成绩信息的流动,需要设计一个学生成绩信息数据库表(XSCJ)。教学计划表(JXJH)。并对该数据库中相关的表实现信息的录入、修改、查询、统计、报表。

(3)学生学籍信息流程图

添加新记录 修改记录 F5 XSXJ 学号 输入学生 检查是 资料 否注册 删除记录 检索记录 窗体 报表 F5 XSXJ 流程图分析:

从数据流图上容易看出该系统应具有对学籍信息录入到数据库中,学籍信息包括:学籍号,姓名,奖贷学金,学生异动,军训等级,毕业去向等。可以修改甚至删除数据库中相关信息资料。可以对数据库的信息按某些字段或字段组合进行检索。同时应具有对数据库的信息作出相关统计等功能。

7

(4)教学计划设置信息流程图

添加新记录 修改记录 F4 jxjh 科目 输入课程 检查是 信息 否注册 删除记录 检索记录 窗体 报表 F4 JXJH 流程图分析:

从数据流图上容易看出该系统应具有科目设置计划进行管理。即可以对教学计划进行维护的功能,维护的字段包括:科目号,科目名,年级,学分,备注。具体的数据流程是:首先输入科目号,科目名,对相应的数据库表进行校验,对没有登记的记录可以进行添加。对已经有的记录可以对其相应的字段进行维护。包括修改,删除。同时系统还可以对数据库中的记录进行检索。检索的结果显示在窗体中。

(四)系统功能结构图

其是成绩的检索、成绩的统计要具备从不同的角度能够对数据库中的记录进行特定条件的检索和统计。在此基础上,总结得到如下的系统功能结构图:

编辑基本信息

基本信息模块 检索基本信息 基本信息报表

导入学籍信息子模块

学籍信息模块 编辑学籍信息子模块 学籍信息报表

成绩编辑子模块

成绩管理模块 成绩查询子模块 成绩报表子模块

教学计划编辑子模块

8

教学计划模块 教学计划查询子模块

教学计划报表子模块

三、详细设计

(一)登陆窗口子模块

本界面的主要功能是为了对系统进行安全性管理,本系统的用户名和密码保存在USER表中,本系统根据不同的用户而设置了不同的权限,可以用admin;admin为用户名和密码来登陆本系统。

(1)登陆按钮源代码:

Private Sub Command1_Click() Dim db As Connection Set db = New Connection

db.CursorLocation = adUseClient db.Open Source=ezxj.mdb;\"

Set adoPrimaryRS = New Recordset a = Text1.Text b = Text2.Text

adoPrimaryRS.Open \"select * from user where 用户名='\" & a & \"'

9

\"PROVIDER=Microsoft.Jet.OLEDB.3.51;Data

and 密码='\" & b & \"'\

If adoPrimaryRS.EOF Then MsgBox (\"用户名或密码错误!\") Static numcount As Integer

numcount = numcount + 1 If numcount = 3 Then numcount = 0

MsgBox (\"三次口令错,将退出程序!\")

Unload Me End If Else

If adoPrimaryRS.Fields(\"级别\") = \"管理员\" Then x = 1 Else x = 0 End If Unload Me Form7.Show End If End Sub

(2)重填按钮源代码: Private Sub Command3_Click() Text1.Text = \"\" Text2.Text = \"\" End Sub

(二)学生档案资料录入子模块

10

(1)运行时的窗体

(2)控件和事件

a)“网格”容器控件:显示档案柜中的数据信息。数据源设定为档案柜表的查询记录集。在窗体的装载事件load中用语句控制。

语句是:

adoPrimaryRS.Open \"select 学籍号,姓名,性别,出生年月,班级,家庭住址,父母姓名,联系电话,奖惩记载,学生简历 from xsda\adLockOptimistic

Set DataGrid.DataSource = adoPrimaryRS

b)“最首”按钮控件:click事件是将当前窗体中的网格控件中的信息和文本框控件中的信息指向数据库表查询记录集中的第一条记录。利用SQL语句实现在数据库中查询符合条件的所以记录,并在表单中的网格容器中用指针定位。同时文本框也显示相应的记录信息。如果无相应的记录,系统将给出提示。

实现关键语句如下: adoPrimaryRS.MoveFirst

Text1.Text = adoPrimaryRS.Fields(\"学籍号\") Text2.Text = adoPrimaryRS.Fields(\"姓名\") Text3.Text = adoPrimaryRS.Fields(\"性别\") Text4.Text = adoPrimaryRS.Fields(\"出生年月\") Text5.Text = adoPrimaryRS.Fields(\"班级\")

11

Text6.Text = adoPrimaryRS.Fields(\"家庭住址\") Text7.Text = adoPrimaryRS.Fields(\"父母姓名\") Text8.Text = adoPrimaryRS.Fields(\"联系电话\") Text9.Text = adoPrimaryRS.Fields(\"奖惩记载\") Text10.Text = adoPrimaryRS.Fields(\"学生简历\")

c)“下一条”按钮控件:click事件是将网格中的,文本框中的信息同时指向当前记录的下一条记录。如果越界就给出已经是最后一条记录的提示,并将记录定位在最后一条记录。

实现语句:

adoPrimaryRS.MoveNext If adoPrimaryRS.EOF Then

MsgBox (\"已经是第后一条记录了!\") adoPrimaryRS.MoveLast Else

Text1.Text = adoPrimaryRS.Fields(\"学籍号\") Text2.Text = adoPrimaryRS.Fields(\"姓名\") Text3.Text = adoPrimaryRS.Fields(\"性别\") Text4.Text = adoPrimaryRS.Fields(\"出生年月\") Text5.Text = adoPrimaryRS.Fields(\"班级\") Text6.Text = adoPrimaryRS.Fields(\"家庭住址\") Text7.Text = adoPrimaryRS.Fields(\"父母姓名\") Text8.Text = adoPrimaryRS.Fields(\"联系电话\") Text9.Text = adoPrimaryRS.Fields(\"奖惩记载\") Text10.Text = adoPrimaryRS.Fields(\"学生简历\") End If

d)“上一条” 按钮控件:click事件是将网格中的,文本框中的信息同时指向当前记录的上一条记录。如果越界就给出已经是第一条记录的提示,并将记录定位在第一条记录。

实现语句:

12

adoPrimaryRS.MovePrevious If adoPrimaryRS.BOF Then MsgBox (\"已经是第一条记录了!\") adoPrimaryRS.MoveFirst Else

Text1.Text = adoPrimaryRS.Fields(\"学籍号\") Text2.Text = adoPrimaryRS.Fields(\"姓名\") Text3.Text = adoPrimaryRS.Fields(\"性别\") Text4.Text = adoPrimaryRS.Fields(\"出生年月\") Text5.Text = adoPrimaryRS.Fields(\"班级\") Text6.Text = adoPrimaryRS.Fields(\"家庭住址\") Text7.Text = adoPrimaryRS.Fields(\"父母姓名\") Text8.Text = adoPrimaryRS.Fields(\"联系电话\") Text9.Text = adoPrimaryRS.Fields(\"奖惩记载\") Text10.Text = adoPrimaryRS.Fields(\"学生简历\") End If

e) “最末”按钮控件:click事件是将当前窗体中的网格控件中的信息和文本框控件中的信息指向数据库表查询记录集中的第后一条记录。利用SQL语句实现在数据库中查询符合条件的所以记录,并在表单中的网格容器中显示。如果无相应的记录,系统将给出提示。

实现关键语句如下: adoPrimaryRS.MoveLast

Text1.Text = adoPrimaryRS.Fields(\"学籍号\") Text2.Text = adoPrimaryRS.Fields(\"姓名\") Text3.Text = adoPrimaryRS.Fields(\"性别\") Text4.Text = adoPrimaryRS.Fields(\"出生年月\") Text5.Text = adoPrimaryRS.Fields(\"班级\") Text6.Text = adoPrimaryRS.Fields(\"家庭住址\") Text7.Text = adoPrimaryRS.Fields(\"父母姓名\")

13

Text8.Text = adoPrimaryRS.Fields(\"联系电话\") Text9.Text = adoPrimaryRS.Fields(\"奖惩记载\") Text10.Text = adoPrimaryRS.Fields(\"学生简历\")

f) “添加”按钮控件:click事件是添加新的学生档案记录,实现的原理是对数据库查询的记录集添加一条新的记录,然后修给这条空记录的值,达到对数据库表中的学生档案记录添加的目的。

实现的语句如下: adoPrimaryRS.AddNew

adoPrimaryRS.Fields(\"学籍号\") = Text1.Text adoPrimaryRS.Fields(\"姓名\") = Text2.Text adoPrimaryRS.Update

g)“编辑”按钮控件:click事件是将记录集中当前记录在文本框中进行修改,然后更改记录集中相应的记录。来达到修改数据库中的记录的目的。和添加相比不需要adoPrimaryRS.AddNew这个语句。

实现的主要语句是:

adoPrimaryRS.Fields(\"学籍号\") = Text1.Text adoPrimaryRS.Fields(\"姓名\") = Text2.Text adoPrimaryRS.Update

h)“查找”按钮控件:click事件是激活查询窗体。 语句是:Form2.Show

i)“删除”按钮控件:click事件是删除当前记录。同时数据库记录指针指向当前记录的上一条记录。

adoPrimaryRS.Delete adoPrimaryRS.MovePrevious If adoPrimaryRS.BOF Then adoPrimaryRS.MoveFirst End If

14

Text1.Text = adoPrimaryRS.Fields(\"学籍号\") Text2.Text = adoPrimaryRS.Fields(\"姓名\") Text3.Text = adoPrimaryRS.Fields(\"性别\")

j)“退出”按钮控件:click事件是释放当前窗体,返回主控系统。 实现语句是:Unload Me

(三)档案信息查询子模块

(1)运行时的窗体

(2)控件和事件

a)“网格”容器控件:显示学生档案数据库里面的中的数据信息。数据源设定为档案数据库的查询记录集。在窗体的装载事件load中用语句控制。装载时默认是所有记录。

语句是:

adoPrimaryRS.Open \"select 学籍号,姓名,性别,出生年月,班级,家庭住址,父母姓名,联系电话,奖惩记载,学生简历 from xsda\adLockOptimistic

Set DataGrid1.DataSource = adoPrimaryRS

b)“选择”按钮控件:click事件是将当前窗体中的文本控件中的关键字作为查询的关键字。查询可以是按照学生学籍号或者姓名。查询类别和关键字可以根据用户的需要设定。查询的结果显示在网格控件中。

实现关键语句如下:

15

a = Combo1.Text b = Text1.Text

adoPrimaryRS.Open \"select 学籍号,姓名,性别,出生年月,班级,家庭住址,父母姓名,联系电话,奖惩记载,学生简历 from xsda where \" & a & \" like '%\" & b & \"%'\

Set DataGrid1.DataSource = adoPrimaryRS

c)“导出”按钮控件:click事件是将查询记录集中的的查询结果导出到报表专家excel中去。导出的实质就是将记录集中的记录用一个双循环作为excel的记录源。从而实现导出。

实现语句:

adoPrimaryRS.MoveFirst i = 0

Do While (adoPrimaryRS.EOF = False)

For j = 0 To adoPrimaryRS.Fields.Count . 1 DataGrid1.Col = j

xlsheet.Cells(i + 2, j + 1) = DataGrid1.Text Next j

adoPrimaryRS.MoveNext i = i + 1 Loop

导出到excel后的窗体如下:

在excel环境下我们就可以根据用户的需要轻松制作出符合用户的各种表报。

16

(四)学生成绩录入子模块

(1)运行时的窗体

(2)控件和事件

控件包括4个文本框、5个按钮控件和一个网格控件。文本框完成对学生输入成绩的科目和时间的设定。对于同样科目同一考试时间的成绩的录入。这样设定后对于录入成绩很方便。每个记录输入后这2个文本框的信息是不改变的。还有2个文本框是录入学生学籍号和成绩。5个按钮控件分别是输入,修改,删除重新设定和退出。下面将对按钮控件做详细分析。网格控件默认的数据源是学生成绩库里面的所有数据。

在装载时用语句实现:

adoPrimaryRS.Open \"select 学籍号,姓名,科目,成绩,学期 from xscj\db, adOpenStatic, adLockOptimistic

Set DataGrid1.DataSource = adoPrimaryRS

下面对输入,修改,删除这三个按钮的事件和实现语句分析如下: a)“输入”按钮控件:click事件首先对学生档案库中的记录进行查询符合输入的学籍号记录。如果没有,则说明该生还没有注册,不能录入学生成绩。如果查到学生记录,则将学生的姓名,已经输入的成绩信息一同作为学生成绩添加的信息。

它的实现语句是: a = \"学籍号\"

17

b = Text3.Text

adoPrimaryRS1.Open \"select 学籍号,姓名 from xsda where \" & a & \" like '%\" & b & \"%'\

If adoPrimaryRS1.EOF = True Then MsgBox (\"该生还未注册\") Else

Set adoPrimaryRS2 = New Recordset a = \"学籍号\" b = Text3.Text c = \"科目\" d = Text1.Text e = \"学期\" f = Text2.Text

adoPrimaryRS2.Open \"select 学籍号,姓名,科目,学期 from xscj where \" & a & \" like '%\" & b & \"%' and \" & c & \" like '%\" & d & \"%' and \" & e & \" like '%\" & f & \"%'\

If adoPrimaryRS2.EOF = True Then adoPrimaryRS.AddNew

2)“修改”按钮控件:网格开始的时候设定为不可编辑。现在对它的修改需要改变它的属性。click事件是将按钮名改成“保存”,增加了系统的交互性,同时使网格变得可编辑。 “保存” 按钮控件的click事件是将按钮名改成“修改”,此时使文本框变得不可编辑,修改完成后,网格容器控件中的数据自动更新。

它的实现语句是:

If Command4.Caption = \"成绩修改\" Then Command4.Caption = \"保存\" DataGrid1.Enabled = True Else

Command4.Caption = \"成绩修改\"

18

DataGrid1.Enabled = False End If

3)“删除”按钮控件:成绩库的记录有时候会输入出错。当然一般可以通过修改更正,但是有时候输入了一条完全没有意义的记录我们可以通过删除来完成整理数据库的目的。

实现的语句如下: adoPrimaryRS.Delete adoPrimaryRS.MovePrevious If adoPrimaryRS.BOF Then adoPrimaryRS.MoveFirst

(五)学生成绩查询子模块

(1)运行时的窗体

(2)控件和事件

该模块主要包括网格,文本框,按钮控件。网格默认的数据源是成绩库的所以记录。文本框用来设定和输入查询类别和查询关键字。查询可以从学籍号,姓名,班级,年级。以及考试时间等进行综合查询。即至少找到满足2个查询关键字的记录。导出按钮控件主要是将查询的结果导出到excel中。

下面主要针对查询按钮作一个主要分析:

19

实现的语句如下: a = Combo1.Text b = Text1.Text c = \"学期\" d = Text2.Text

If Combo1.Text = \"班级\" Then

adoPrimaryRS.Open \"select distinct 学籍号,姓名,科目,成绩,学期 from xscj where \" & c & \" like '%\" & d & \"%' and 学籍号 in (select 学籍号 from xsda where \" & a & \" like '%\" & b & \"%')\adLockOptimistic

Else

adoPrimaryRS.Open \"select distinct 学籍号,姓名,科目,成绩,学期 from xscj where \" & a & \" like '%\" & b & \"%' and \" & c & \" like '%\" & d & \"%'\

End If

Set DataGrid1.DataSource = adoPrimaryRS

在查询中由于是综合查询。所以实现的语句用到了sql语句中的联合查询。具体的语句是:select distinct 学籍号,姓名,科目,成绩,学期 from xscj where \" & c & \" like '%\" & d & \"%' and 学籍号 in (select 学籍号 from xsda where \" & a & \" like '%\" & b & \"%')

(六)学生学籍导入子模块

20

学生学籍里面的学籍号,姓名这些字段的信息不必专门输入。为了高效率和为了与档案记录的一致性我们可以首先将档案库的所有记录首先作为数据源显示在如下窗体的左边的档案网格中。然后将该网格的数据作为右边学籍库的数据源导入。同时对学籍库的其他字段自动设定为无。等以后随着学生的求学过程。我们可以动态的进行修改。

导入按钮的click控件的源代码是: For i = 0 To DataGrid1.VisibleRows . 1 DataGrid1.Row = i DataGrid1.Col = 0

If adoPrimaryRS.EOF = True Then adoPrimaryRS.AddNew

adoPrimaryRS.Fields(\"学籍号\") = DataGrid1.Text DataGrid1.Col = 1

adoPrimaryRS.Fields(\"姓名\") = DataGrid1.Text adoPrimaryRS.Fields(\"奖贷学金\") = \"无\" adoPrimaryRS.Fields(\"异动\") = \"无\" adoPrimaryRS.Fields(\"军训等级\") = \"无\" adoPrimaryRS.Fields(\"毕业去向\") = \"无\" Else

adoPrimaryRS.MoveFirst

21

Do While (adoPrimaryRS.EOF = False)

If adoPrimaryRS.Fields(\"学籍号\") = DataGrid1.Text Then Exit Do End If

adoPrimaryRS.MoveNext Loop

If adoPrimaryRS.EOF = True Then adoPrimaryRS.AddNew

adoPrimaryRS.Fields(\"学籍号\") = DataGrid1.Text DataGrid1.Col = 1

adoPrimaryRS.Fields(\"姓名\") = DataGrid1.Text adoPrimaryRS.Fields(\"奖贷学金\") = \"无\" adoPrimaryRS.Fields(\"异动\") = \"无\" adoPrimaryRS.Fields(\"军训等级\") = \"无\" adoPrimaryRS.Fields(\"毕业去向\") = \"无\" End If End If Next i

对于档案网格中的数据利用循环实现导入。对于档案网格中的数据每读一条数据。在学生学籍库网格相应的记录集中就增加一条记录。

(七)学生学籍管理子模块

22

该模块包括一个文本框控件。一个网格控件。和4个按钮控件。文本框控件用于定位记录输入学籍号。网格控件默认的数据源是所有的学生学籍库信息。对于信息的修改是通过修改最初设定网格的默认属性为不能编辑这个属性来实现的。

其中的修改的click的源代码是: If Command2.Caption = \"修改\" Then Command2.Caption = \"保存\" DataGrid1.Enabled = True Else

Command2.Caption = \"修改\" DataGrid1.Enabled = False

对于从众多的数据中来修改数据还要用到数据的定位功能。这里用“确定”按钮的click事件实现。语句如下:

adoPrimaryRS.MoveFirst

Do While (adoPrimaryRS.Fields(\"学籍号\") <> Text1.Text) adoPrimaryRS.MoveNext Loop

分析源代码:这里定位是用一个循环语句实现。循环的结束的条件是学籍号等于查询关键字。

23

(八)系统菜单

设计一个菜单系统,一般要经过几个步骤:菜单系统的规划,建立菜单与子菜单,把任务分配到菜单系统中,生成菜单程序,测试和运行菜单系统等,VB6.0是通过设计窗体来完成菜单的设计界面的,本系统设计的菜单运行如下:

【参考文献】

[1].陈明 软件工程 广播电视大学出版社 2010年6月

[2].张亮 Visual Basic程序设计 作者:陈明 广播电视大学出版社 2009年7月

[3].刘韬Visual Basic6.0数据库系统开发实例导航 人民邮电出版社2009年11月

[4].刘瑞新 Visual Basic语言程序设计,机械工业出版社。2010年3月 [5].李夏邦 Visual Basic 数据库开发入门与范例分析 机械工业出版社 2009年7月

[6].张明明 Visual Basic 6.0数据库应用 北京工业出版社 2010年6月

24

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务