[精品论文]学生档案管理系统论文_第1页
[精品论文]学生档案管理系统论文_第2页
[精品论文]学生档案管理系统论文_第3页
[精品论文]学生档案管理系统论文_第4页
[精品论文]学生档案管理系统论文_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计课程定做 QQ1714879127前 言学生做为学校的最主要的管理对象,学生档案管理系统就成了学校信息化管理系统中中不可缺少的部分,它的内容对于学校的管理者说都至关重要。但一直以来人们使用传统人工的方式进行学生的档案管理,这种管理方式存在着许多缺点,如:效率低,容易出错,格式不规范。另外时间一长,不容易进行统计和分析。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学生档案进行管理,具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、寿命长、成本低等。这些优点能够极大地提高学校学生档案管理的效率。因此,开发这样一套管理软件成为很有必要的事情。而且只要软件的设计合理,可以为 学校提供合理的管理模式。本次毕业设计,由于时间仓促,经验不足,针对的学生档案管理可能比较的简单。虽然比较的简单,但是涉及的东西也是比较的多的,只不过进行了部分的简化,在现实中还有有其使用价值的。第一章 概述11开发背景现在的社会日新月异,发展的非常的快。学校的发展也是非常的快了,而且每年都有不同的要求。学生的量也非常的大,资料可能经常性的发生更换,原来手工的管理模式就显的不怎么的合适了。而且手工的数据是存放在多处的,没有使用统一管理的模式,数据整理非常的麻烦,统计也困难,很多的情况下,老师都是在重复一些相同的工作。做一些相似的报表,这样不但降低了工作效率,而且非常的容易出错。在这种条件下,使用微机管理就显的非常的合适了。只要你正确的录入,统计,报表输出一点问题都没有的。于是我开始设计学生档案管理系统。12开发环境1、系统运行环境在操作系统方面,虽然现在Linux的发展速度非常的快,但是对于大多数的使用者来说,操作显然没有微软的WINDOWSNA那么的流行和傻瓜化。而且现在计算机的运算速度已经不能和以前相提并论了,而且硬件的价格也一天天的在下降了,所以也不用为了节省整体的造价而改用硬件要求很低的DOS系统了。所以我决定该借书管理系统将运行在Windows系统下面。2、开发工具在确定了操作系统后,就该选择开发工具了。经过了综合的比较而且最重要的是本人在学校期间学习的就是Visual Basic。这个是个数据库管理系统,系统,所以我们必须得选一个合适的数据库。考虑到我这个系统针对的用户,已经价格方面的考虑,完全可以使用Access来进行开发,而且我在使用Visual Basic的时候,操作数据库方面使用的是微软提供的数据访问接口,先我们来了介绍一下Visual Basic以及微软微软提供了哪些数据库访问方法,并且各自都有什么特点。 Visual Basic的简介首先,我们还从Visual Basic这个名字开始,来认识这个软件。所谓“Visual”指的是开发图形用户界面 (GUI) 的方法。它不需编写大量的代码去描述界面元素的外观和位置,而只要把预先建立的对象添加到屏幕上的某一位置即可。如果已使用过诸如 Paint 之类的绘图程序,则实际上已掌握了创建用户界面的必要技巧。“Basic”指的是 BASIC (Beginners All-Purpose Symbolist Instruction Code) 语言,一种在计算技术发展历史上应用得最为广泛的编程语言。Visual Basic 在原有 BASIC 语言的基础上进一步发展,至今包含了数百条语句、函数及关键词,其中很多和 Windows GUI 有直接关系。专业人员可以用 Visual Basic 实现其它任何 Windows 编程语言的功能,而初学者只要掌握几个关键词就可以建立实用的应用程序。Visual Basic 不仅是 Visual Basic 编程语言。Visual Basic 编程系统和 VBA 都使用这一语言。Visual Basic Scripting Edition (VBScript) 是广泛使用的脚本语言,它是 Visual Basic 语言的子集。这样,在学习 Visual Basic 中得到的经验可应用到所有这些领域中。接着,我们再从Visual Basic的发展历史来进一步地认识一下它。Visual Basic的最初版本是Visual Basic1.0,那时的Visual Basic只是简单地以对象的属性为中心来进行编程。到了Visual Basic2.0时,开始正式地采用面向对象技术,其有一个重要的新特性就是可拥有对象变量,并把Variant型变量作为缺省数据类型变量。没过多久Visual Basic的下两个版本Visual Basic3.0和Visual Basic4.0接踵而至,一种内建的新的控件类型数据控件,能够使创建一个与数据库交互作用的应用程序变得令人惊讶的容易。在微软的其它应用程序,如WORD字处理软件、EXCEL电子报表软件、ACCESS数据库软件中都做了改变,使得它们可以与Visual Basic一致工作。这种新技术被称作为Visual Basic For Applications,它帮助实现了Visual Basic的最初设想。理论上,人们总是能够通过某种叫做动态数据交换(DDE)的技术使视窗系统应用程序彼此交互。但那样既慢而且又麻烦。Visual Basic的完美之处在于它能使程序员获得一块数据如报表,并将它看作是Visual Basic的对象。其目的就是要使视窗系统下的每一件事情都支持同样的易于使用的高级语言。Visual Basic5.0出现以后,在某些方面有了重大的突破。它给予了程序员长期期待的不用离开Visual Basic环境,就可以创建新的定制控件类型和创建其它项目类型的能力。除了一般应用程序外,程序员还能创建文档、DLLs、OLE服务器和ActiveX控件。当Visual Basic逐渐复杂时,世界已经在围着它转了。项目类型的增加不是用来迷惑程序员,而是提供灵活性的。视窗系统已经成为一个特别丰富的环境,可使应用程序彼此交流和共享数据。我们现在所使用的Visual Basic6.0被看着是Visual Basic的网络版本。可以看出它投入了相当一部分的精力去支持微软日益在Internet和分布式(网络)计算方面的重视程度。虽然它没有象Visual Basic5.0所引起的那样激动人心,但它还是在某些方面做了一些有用的改进。其最重要的一个改进就是增加了ADO数据控件,它可以缩小本地和远程数据控件之间的差别。换句话说,程序员在很大程度上可以与数据库交互作用,而不用担心网络上由谁来提供服务。最后,我们再从数据库编程方面来了解一下Visual Basic6.0。a.Visual Basic 数据库的构成Visual Basic 数据库都是由用户界面、数据库引擎以及数据仓库三大部分构成。用户界面 包括用于与用户交互的所有界面和代码,如用户完成查看、更新数据的窗体,以及增删记录或执行查询的代码。即是用于请求数据库服务的数据访问对象和方法,而不是对数据库的实际操作。数据库引擎 是一组动态链接库(DLL),用于结束应用程序的请求并形成对数据仓库的实际物理操作;管理对数据库的物理操作;维护数据库的完整和安全;处理结构化查询语言(SQL)的查询,实现对数据库的检索、增删、更改;管理查询返回的结果。数据仓库 用于存放数据,由若干个数据表文件组成。数据仓库仅仅只包含数据,并不对数据进行任何处理,对数据进行操作均由数据引擎完成。由此可以看出,数据库引擎是应用程序与实际的物理数据库之间的桥梁,应用程序都是通过数据库引擎来实现对物理数据库中数据的存取等操作。用户只需要了解所面对的数据库接口,而不必关心所访问的数据库本身的物理特性。b.Visual Basic 能够访问的数据库类型Visual Basic 能够通过数据库引擎访问内部数据库、外部数据库、ODBC数据库这三种类型的数据库。内部数据库 内部数据库又称本地数据库,使用Microsoft Access数据格式,由Microsoft Jet引擎直接创建操作,可以提供最大的灵活性和访问速度。外部数据库 Visual Basic中能够创建操作所有的ISAM(索引顺序访问方法),如FoxPro、dBASE、Microsoft Excel、Paradox以及顺序文本文件等。ODBC数据库 Visual Basic 可以访问标准的客户/服务器数据库,例如Microsoft SQL Server。可以使用ODBC Direct 直接将命令传递给服务器,从而创建客户/服务器应用程序。c.Visual Basic 访问数据库的方案用Visual Basic 访问数据库有许多可供选择的方案,用户应该根据自己现在及将来的需要决定采用何种数据库方案。大多数应用程序是用来访问以下这些数据的:ASCII文本文件、SQL数据库以及大型数据库。早期的Visual Basic数据访问工具只是简单的ASCII文件的访问工具,极少数SQL Server的前端应用程序是使用鲜为人知的数据库VBSQL编写的。早先在Visual Basic3.0盛行的时期许多程序需要访问包含远程数据源的ISAM数据,为此Microsoft 设计了Microsoft Jet Database Engine(Jet数据库引擎)和Data Access Objects(DAO),使得Visual Basic的开发人员很容易地实现与Microsoft Jet接口。而后针对用户的需求Visual Basic中逐渐包含了更快的访问远程数据和对ODBC数据源访问的优化。经过数年,ODBC技术已成为访问远程数据的主要方法,而Microsoft Jet 和ISAM数据接口的首选方案。Visual Basic访问数据需要通过接口方法来实现,数据访问接口方法中一部分是简单的应用程序接口界面,但大部分是组件对象模型界面(Component Object Model)。表2-1列出Visual Basic中的数据访问接口方法:接口界面访问对象VB SQL通过DB-Library访问Microsoft SQL ServerDAO/Jet本地的Jet/Access.mdb、顺序索引数据库(ISAM)和任何ODBC数据源DAO/ODBC Direct任何一种ODBC数据源RDO任何一种ODBC(32位)ADO任何一种ODBC数据源和任何经过OLE DB界面接口的数据源表2- 1 Visual Basic中的数据访问接口方法Microsoft提出一种新的数据库访问策略,即“统一数据访问”(Universal Data Access)的策略。“统一数据访问”提供了高性能的存取包括关系型和非关系型在内的多种数据源,提供独立于开发工具和开发语言的简单的编程接口,这些技术使得企业集成多种数据源、选择更好的开发工具、应用软件、操作平台、建立容易维护的解决方案成为可能。实现“统一数据访问”的基础是Microsoft的数据访问组件。这些组件包括ActiveX Data Objects(ADO)、Remote Data Service(RDS,又称“高级数据连接器”ADC)、OLE DB和ODBC。表2-2列出数据访问接口的类型:数据访问接口功能ADC(Advanced Data Connector)高级数据连接器。ADC主要是一种直接访问或者通过 ADO访问远程OLE DB对象的一种技术,它也支持主要应用在IE浏览器上的数据绑定控件。ADC是专门为Web上浏览器为基础的应用程序而设计的。DAO(Data Access Objects)数据访问对象。DAO是一种面向对象的界面接口。通过DAO/Jet功能可以访问ISAM数据库,使用DAO/ODBC Direct功能可以实现远程访问。DAO模型是设计关系数据库系统结构的对象类的集合。ADO(ActiveX Data Objects)Active数据对象。ADO设计为一种极为简单的格式,通过ODBC的方法同数据库接口。可以用任何一种ODBC数据源,如:SQL Server、Oracle、Access、Excel、文本文件、图形文件和无格式的数据文件。Jet(Joint Engine Technology)数据连接引擎技术。是一种基于工作站通过DAO的数据库访问 机制。虽然可以通过Access提供的ODBC驱动程序访问Jet数据库,但使用这些驱动程序在功能上有所限制ODBC(Open Database Connectivity)开放式数据库连接。这是一种公认的关系数据源的接口界面。ODBC的访问速度快并且提供统一接口的界面。OLE DB这一种底层的数据访问界面接口。是用于第三方驱动程序商家开发输出数据源到ADO技术的应用程序或用于C+的开发者开发定制的数据库组件。OLE DB不能被Visual Basic直接调用。RDC(Remote Data Control)远程数据访问控件。是一种对RDO数据绑定的控件。可以输出特定的结果集到数据源控件。RDO(Remote Data Objects)远程数据对象。远程数据对象和集合为使用代码来创建和操作一个远程ODBC数据库系统的各个部件提供了一个框架。RDO是ODBC API的一个浅层的界面接口,是专为访问远程ODBC关系数据源而设计的。VBSQL是Visual Basic结构化查询语言。是一种基于API的接口方法,几乎与C的DB-Library API相同。VBSQL只支持SQL Server。结构简单而且速度快但不支持对象界面。表2- 2 Visual Basic数据访问接口的类型此外,Visual Basic在数据开发方面提供了十分强大的功能。有自带的数据管理器(Data Manager)、数据控件(Data Control)及数据访问对象(DAO)等一系列功能强大的工具来协助管理人员轻松地进行与数据库的连接和管理。在这么多的访问接口里面微软对于ADO非常的推崇,并且下一代的数据访问技术也将是采取这样的思路,而且本身来说ADO模型简单,但是功能强大,使实现人员无须关心一些底层的操作,而把更多的经历放在业务逻辑的设计上面。综上所述,我选择了Visual Basic+ADO+ACCESS来开发整个系统。第二章 系统分析和设计2.1系统业务流程图详细调查的重点是对管理业务的流程进行描述,通过采用系统流程图中部分图形工具来描述管理活动,进行规范化说明。业务流程图的符号说明如图21所示:1、 2、 3、 4、 5、系统中人员 实体或单据 实物或信息流 处理 数据存储图21 业务流程图图例每学年9月份各班学生名单各班学生名单(空白,供填写学生成绩)学生档案处理报表教导处存档校领导各班主任各年级主任各班学生名单微机室教导处转退复留学生名单录入有关信息打印各班名单学生档案处理学生档案处理报表学生档案处理报表年级主任详细调查之后,绘制出的学生档案管理系统的管理业务流程图如图22所示。 图22 学生档案管理系统业务流程图2.2系统逻辑模型的提出系统分析的主要成果是系统的逻辑模型。本系统的逻辑模型主要是以系统的数据流图和数据字典为主要描述工具。即在对学生成绩管理方式和业务流程进行认真分析和研究的基础上,排除现有组织机构和业务分工所造成的信息障碍。完全从业务管理功能和管理对象出发,按照信息系统中应有的数据流和数据结构来勾画系统的概貌。2.2.1数据流图(简称为DFD)数据流图是组织中信息运动的抽象。是在调研的基础上,从系统的科学性、管理的合理性、实际运动的可行性角度出发。将信息处理功能和彼此之间的联系自顶向下,逐层分解,从逻辑上精确地描述系统应具有的数据加工功能、数据输入、数据输出、数据存储及数据来源和去向(外部实体)等项目。首先,分析学生档案管理的总体情况,划分系统边界,识别系统的数据来源和去处,确定外部实体,得出系统的顶层数据流程图;然后划分出几个主要的信息管理功能,并明确各功能之间的联系,绘制出数据流程图。数据流程图的符号说明如图23所示。学生档案管理系统的顶层数据流程图如图24所示。学生档案管理系统的数据流程图如图25所示 外部实体 处理 数据流 数据存储 图23 数据流程图的符号学生简明情况P学生档案处理 用户 校领导学生档案报表D1P2 1221填写学生情况F2D1P1 1221F1 图24 学生档案处理的顶层数据流程图学生情况手工报表打印学生名单录入课程、班级等信息P3D2已填好的学生情况学生档案处理F3D3学生档案报表F4 图25 系统数据流程图其中P表示数据处理,F表示数据流,D表示数据存储。222数据字典(简称为DD)绘制DFD,只是对数据处理和彼此之间的联系进行了说明。为进一步明确数据的详细内容和数据加工过程,应将数据流图中的全部数据流及其组成部分的数据元素,数据存储,数据加工,通过数据字典描述清楚,以便于此后系统设计的进行。这就需要开发人员编写详细的数据字典,来描述系统开发过程的细节。下面列出本系统中的数据项、数据流、数据存储、加工处理和数据结构的数据字典。1、数据项的DD表列举如下:表21 学生号码的数据字典 数 据 项系统名:学生档案管理系统 编号:I001 名称:学生号码 别名: 数据项值: 类型:字符型 长度:8个字节 取值范围:简述:为了便于填写分数单及录入分数,每个学生都具有唯一的编号,它是某个学生的唯一标识符,每个学生都有唯一的学号,如“011976”通常用前两位数字表示入学的年份,中间两位表示班级,最后两位表示该学生在该班的序号。如果该班学生数超过100人时,可用“0119A0”表示第100个学生。修改记录:编写日期审核日期 数 据 项系统名:学生档案管理系统 编号:I002 名称:学生姓名 别名: 数据项值: 类型:字符型 长度:8个字节 取值范围:简述: 每个学生都有唯一的一个姓名,也就是每个学号都对应一个学生名字,但不同的学号的姓名可以相同,也就是说学生号码和姓名是多对一的关系,这是考虑到重名的原因.修改记录:编写日期审核日期表2-2姓名的数据字典其它数据项的数据字典略.23 总体模块划分在第一章的开发背景中我已经说明了本学生档案管理系统的流程了,于是在下面的这个功能设计中,我将针对这里的流程进行设计。我将把系统功能分为如下图。学生档案管理系统登陆系统退出系统班级设置学生基础信息设置学生评语学生奖惩记录学生换班处理学生退学处理学生复学处理毕业处理其实中这图中我们已经了解到了整个系统的基本上的功能了。在下面我将详细的介绍一下24各个模块的功能1、登陆系统对于这类系统如果谁都能登陆到本系统的话,系统里面的数据将非常的危险和有可能会受到蓄意破坏者的攻击了。考虑到数据的安全性,用户必须拥有密码才能够登陆到本系统里面。2、退出系统对于一个系统来说,有一个正常的退出点是必须的,所以设计了这个功能。3、学生基础信息设置对于学校里的学生资料总是需要先进行登记的。如果不进行登记的话,学生的基础资料是以后操作的基础,必须首先进行维护。主要包括学生的姓名、学籍号、身份证号等等信息。4、学生评语每个学生在毕业的时候,老师们都会给他们写一个评语。这个学生评语功能就是管理这个的,这样以后老师需要查阅,可以直接使用该功能查询就可以了,非常的方便了。5、学生奖惩记录学生在在校期间总会受到奖励或者是受到处分,该功能就是记录学生什么时候受到什么样的奖励,受到什么样的处分。而且可以记录多条。这样对于学校的管理老师来说,查询就比较的方便了,而且也不用查询很多的资料 ,就能够集中的找到某个学生的奖励和处分记录了。6、学生换班处理学生在学校里某种情况下,会发生换班的情况,这个功能就是对这个情况进行处理的。7、学生退学处理在学的学生由于生病或者是受到处罚而被迫退学,该功能就是处理学生的退学事宜的。注意该功能只针对处于在学状态的学生。8、 学生复学处理对于由于某种原因,某个学生退学后重新复学。用户可以使用该功能进行该学生的复学处理。注意该功能只针对已经退学的用户,进行复学处理的学生会自动回到在学状态。9、 毕业处理对于班级的现有还没有毕业的班级进行毕业处理。这样用户可以明确的知道那些班级毕业了。25 数据库设计一、概念结构设计 在系统的数据库设计中,先要对系统分析得到的数据字典中的数据存储进行分析,分析各数据存储之间的关系,然后才能得出系统的关系模式。可以采用ER图的方法来进行数据结构分析。ER设计方法是一种通过ER图来描述现实世界信息结构的DB设计方法。ER图由实体、属性、联系三部分组成。ER图的符号说明如图26所示。 实体 属性 实体间的联系图26 ER图图例 类型内容在图26本系统的数据流程图中,系统边界已经很清楚了,所以可直接根据图26设计本系统的ER图,不必要先设计分ER图,再合并总体ER图了。本系统的ER图如图27所示:奖惩记录学籍号 奖惩姓名n身份证号属于nm学生班级1入学班级性别.还有几个属性,限于篇幅,不一一列举了.籍贯民族班级 毕业状态班级备注班级名称图27 ER图学生档案管理中所涉及到的主要实体集及其属性如下:学生学籍号,姓名,身份证号,班级,性别,民族,籍贯,政治面貌,入学日期,出生日期,联系电话,邮政编码,家庭地址,个人简历,状态,学生评语;班级班级名称,班级备注,毕业状态,班级;奖惩记录学籍号,学生姓名,类型,内容;二、逻辑结构设计(ER图向关系模型的转换) ER图向关系模型的转化要解决的问题是如何将实体和实体间的联系转换为关系模式,如何确定这些关系横式的属性和码。 对于实体间的联系我们分不同的情况讨论:(1) 若实体间的联系是1:1,可以在两个实体转换成的两个关系中任意一个关系的属性中加入另一个关系的码。(2) 若实体间联系为1:n,则在n端实体转换成的关系中加入1端实体转换成的关系码。(3) 若实体间联系为n:m,则将联系转换为关系,关系的属性为诸个实体的码加上联系具有的属性,而关系的码则为诸实体的码的组合。由以上三点,可将图27转换为关系模型。每个关系的码用下划线表示。 学生学籍号,姓名,身份证号,班级,性别,民族,籍贯,政治面貌,入学日期,出生日期,联系电话,邮政编码,家庭地址,个人简历,状态,学生评语;班级ID,班级名称,班级备注,毕业状态,班级;奖惩记录学籍号,学生姓名,类型,内容;三、物理结构设计设计原则如下:(1) 进行规范化设计,尽可能地减少数据冗余和重复合理的数据库表的设计应该是在满足需求的前提下,使数据的重复量最小,就尽量按照关系数据库系统理论方法去设计一个数据库,减少数据的冗余。(2) 结构设计与操作设计相结合在设计数据库结构时,有时为了编程实现的简捷和思路的清晰,往往故意增加一些冗余数据。这虽然有悖于传统的关系数据库理论,但是考虑到选择的机器型号和档次等因素,如果增加的冗余不会明显增加存储空间和降低处理效率,并且对编程实现有很大帮助,往往可以采用这种方法。本系统基于此原则,把班级关系和年级关系合并成关系班级班级号,班级名称,年级名称,学校名称(3) 数据结构具有相对的稳定性数据结构的相对稳定性,可以作为新、旧系统转换的依据。无论采用何种方法或手段去处理日常事务,都应该能完成相应的功能,决不会因为采用了计算机而丢失了必要的功能,或彻底改变了原有的工作流程和模式。计算机系统的建成是建立在原系统充分调研的基础上的,它既不能脱离原系统的大框架,也不是简单的重复和替代。所以数据库表结构设计应保证数据的相对稳定,这样才能考虑在新的数据结构下的业务处理方式。消去重复项此处着重讨论如何进行规范化设计消除传递函数依赖消除部分函数依赖,关系范式规范化过程如下:3NF2NF1NF非规范 化关系 和空白数据项基于以上三条设计原则,本系统中关于数据库表结构设计如下:1、 学生信息表字段名数据类型学籍号文本姓名文本身份证号文本班级文本性别文本民族文本籍贯文本政治面貌文本入学日期日期/时间出生日期日期/时间联系电话文本邮政编码文本家庭地址文本个人履历文本状态文本学生评语文本2、奖惩记录字段名数据类型学籍号文本学生姓名文本类型文本内容文本3、班级信息表字段名字段类型ID自动编号班级名称文本班级备注文本毕业状态文本班级文本第三章 系统实现经过了上述的功能设计和数据库设计之后,我们现在对于系统具有什么功能已经非常的了解了,接下来我们就可以进入到代码实现的阶段了。31 登陆系统根据系统的要求,我设计了如下的界面:图31登陆系统32 班级设置我设计了界面如下:图32 班级设置 输入班级和备注之后,按保存,系统会保存该班级的信息,并且该班级自动是处于未毕业的状态。我这里列出里面的典型的代码下面的代码是保存的代码Private Sub Command1_Click()Dim rst As Recordset Set rst = New Recordset rst.ActiveConnection = pCN rst.CursorLocation = adUseClient rst.LockType = adLockBatchOptimistic rst.CursorType = adOpenStatic rst.Source = select * from 班级信息 rst.Open rst.AddNew rst!班级名称 = Text1 rst!班级备注 = Text2 rst.UpdateBatch Text1.Text = Text2.Text = Text1.SetFocus Set rst = NothingEnd Sub从上面的代码我们可以看出,我们是通过把数据保存到记录集中,然后使用记录集的updateBatch来保存的数据库中的数据33学生基础信息设置学生基础信息设置在本系统中可以说是重中之中,为了照顾到浏览和编辑的需要,该功能我设计了两个界面,一个是用来浏览当前所有的学生信息,并且有删除学生信息的功能,另外一个是用来编辑和增加学生信息的。根据系统的功能要求,我这里设计了如下的浏览界面:图3-3学生基础信息设置这里最主要的是代码如下在表格中显示学生资料数据的代码如下:Private Sub Form_Load() Me.Adodc1.ConnectionString = pCN.ConnectionString Me.Adodc1.RecordSource = select ID,学籍号,姓名,班级,身份证号,性别,民族,籍贯,政治面貌,家长姓名,入学日期,出生日期,联系电话,邮政编码,家庭地址,个人履历 from 学生信息 Me.Adodc1.Refresh Set Me.MSHFlexGrid1.Recordset = Me.Adodc1.RecordsetEnd Sub删除按钮的代码如下:Private Sub Command3_Click() If Me.MSHFlexGrid1.Rows 1 Then If MsgBox(你真的要删除选中的学生的信息吗?, vbQuestion + vbOKCancel) = vbOK Then pCN.Execute delete from 学生信息 where ID= & Val(Me.MSHFlexGrid1.TextMatrix(Me.MSHFlexGrid1.Row, 0) Call Form_Load End If End IfEnd Sub删除是一个非常慎重的操作,所以在这里我先进行了提示,只有用户确定删除之后,我才会进行接下来的删除动作。接下来我来介绍一下修改的代码:Private Sub Command2_Click() If Me.MSHFlexGrid1.Rows 1 Then Call frmStudentEdit.EditStudent(Me.MSHFlexGrid1.TextMatrix(Me.MSHFlexGrid1.Row, 0) Call Form_Load End IfEnd Sub从上面的代码我们可以看处来,其实这里没有进行实际的操作,而是调用了学生编辑界面的一个方法。下面让我们来看看学生资料编辑界面,如下:图3-4 学生资料编辑界面这是按了修改后出现的界面,从界面中可以看出系统会自动的加载要修改的学生的信息。这里的代码很重要,也就是该窗体提供给外部调用的一个接口,代码如下:Public Sub EditStudent(Optional ByVal lngID As Long = 0)Dim rst As Recordset mlngID = lngID mblnEdit = (lngID 0) Call initCmbClass If mblnEdit Then Set rst = New Recordset rst.ActiveConnection = pCN rst.CursorLocation = adUseClient rst.LockType = adLockBatchOptimistic rst.CursorType = adOpenStatic rst.Source = select * from 学生信息 where ID= & lngID rst.Open Text1.Text = rst!学籍号 & Text10.Text = rst!姓名 & Text2.Text = rst!身份证号 & Call SetCmbClassIndex(rst!班级) If rst!性别 = 男 Then Option1.Value = True Else Option2.Value = False End If Text3.Text = rst!民族 & Text4.Text = rst!籍贯 & Text5.Text = rst!政治面貌 & Text6.Text = rst!家长姓名 & DTPicker1.Value = rst!入学日期 DTPicker2.Value = rst!出生日期 Text7.Text = rst!联系电话 & Text8.Text = rst!邮政编码 & Text9.Text = rst!家庭地址 & Text11.Text = rst!个人履历 & End If Set rst = Nothing Me.Show 1End Sub这个方法是个窗体级的public函数,调用方法,我在前面的代码里已经说明了。这里还用到了数据库的搜索代码。在该窗体里面,还有一段最主要的代码,就是学生资料的保存代码,这是最重要的。代码如下:Private Sub Command1_Click()Dim rst As Recordset 表示编辑状态 Set rst = New Recordset rst.ActiveConnection = pCN rst.CursorLocation = adUseClient rst.LockType = adLockBatchOptimistic rst.CursorType = adOpenStatic If mblnEdit Then rst.Source = select * from 学生信息 where ID= & mlngID rst.Open Else rst.Source = select * from 学生信息 rst.Open rst.AddNew End If rst!学籍号 = Text1.Text rst!姓名 = Text10.Text rst!身份证号 = Text2.Text rst!班级 = Combo1.Text rst!性别 = IIf(Option1.Value, 男, 女) rst!民族 = Text3.Text rst!籍贯 = Text4.Text rst!政治面貌 = Text5.Text rst!家长姓名 = Text6.Text rst!入学日期 = DTPicker1.Value rst!出生日期 = DTPicker2.Value rst!联系电话 = Text7.Text rst!邮政编码 = Text8.Text rst!家庭地址 = Text9.Text rst!个人履历 = Text11.Text rst.UpdateBatch Text1.Text = Text10.Text = Text1.SetFocus mblnEdit = False Set rst = NothingEnd Sub在界面上,可能还可以看到有一个组合框,这个是供用户选择班级时使用的,所以在窗体加载的时候,必须先进行初始化操作,代码如下:Private Sub initCmbClass()Dim i As IntegerDim rst As Recordset Set rst = New Recordset rst.ActiveConnection = pCN rst.CursorLocation = adUseClient rst.LockType = adLockBatchOptimistic rst.CursorType = adOpenStatic rst.Source = select * from 班级信息 rst.Open Combo1.Clear For i = 1 To rst.RecordCount Combo1.AddItem rst!班级名称 rst.MoveNext Next i If Combo1.ListCount 0 Then Combo1.ListIndex = 0 End If Set rst = Nothing End Sub上面的代码就是学生编辑窗体里最主要的代码。34学生评语根据前面的要求和分析,设计了如下简洁的界面:图35学生评语在界面的左下脚的文本框里面的内容就是老师的评语,修改后,可以直接按保存就会保存到数据库中去的显示评语的代码如下:Private Sub MSHFlexGrid1_Click() Text1.Text = Me.MSHFlexGrid1.TextMatrix(Me.MSHFlexGrid1.Row, Me.MSHFlexGrid1.Cols - 1)End Sub而保存按钮的代码如下:Private Sub Command1_Click()Dim rst As Recordset Set rst = New Recordset rst.ActiveConnection = pCN rst.CursorLocation = adUseClient rst.LockType = adLockBatchOptimistic rst.CursorType = adOpenStatic rst.Source = select * from 学生信息 where ID= & Me.MSHFlexGrid1.TextMatrix(Me.MSHFlexGrid1.Row, 0) rst.Open rst!学生评语 = Text1.Text rst.UpdateBatch Call Form_Load Set rst = NothingEnd Sub35学生奖惩记录考虑到用户浏览的需要,和学生编辑界面相似,设计了两个界面。而且每个学生可能有多条的奖励和惩罚记录,所以正好是明细表的关系,于是设计了如下的界面:图3-6 学生奖惩记录显示奖惩信息的代码如下:Private Sub MSHFlexGrid1_RowColChange() Me.Adodc2.ConnectionString = pCN.ConnectionString Me.Adodc2.RecordSource = select * from 奖惩记录 where 学籍号= & Me.MSHFlexGrid1.TextMatrix(Me.MSHFlexGrid1.Row, 1) & Me.Adodc2.Refresh Set Me.MSHFlexGrid2.Recordset = Me.Adodc2.RecordsetEnd Sub从代码中可以看出,当上面的学生信息改变的时候,下面的表格自动从数据库中检索出该学生的奖惩记录。这个正好是在学生显示信息的表格发生了改变的时候发生的事件。删除按钮的代码如下:Private Sub Command3_Click() If Me.MSHFlexGrid2.Rows 1 Then If MsgBox(你真的要删除该条奖惩记录吗?, vbQuestion + vbOKCancel) = vbOK Then pCN.Execute

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论