版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2006届普通本科毕业论文(设计) 存档编号: 毕业论文(设计)题目: 基于vb学生信息管理系统的设计与实现 专 业: 计算机科学与技术 院 系: 计算机科学与技术学院 年 级: 计科q0241 学 号: 02414004 姓 名: 戴斌 指导教师: 吴保荣 职 称: 副教授 湖北经济学院教务处 制目录摘要3abstract3第1章 系统总体设计51.1应用背景51.2开发平台vb6.0介绍51.3数据库技术的发展及特点614项目目标715解决方案设计10第2章 数据库设计122.1数据库的er图122.2数据库与数据表的创建15第3章 技术细节183.1recordset数据对象183.2a
2、ddnew方法193.3delete方法203.4move移动记录213.5movefirst、movelast、movenext和moveprevious方法223.6save方法,保存记录233.7update方法243.8datagrid控件介绍24第4章 功能模块设计264.1登录窗口设计264.2 创建系统主控界面264.3 创建学生档案管理窗体274.4 创建学生成绩管理窗体294.5 学生交费管理窗体的制作304.6 课程管理窗体的制作314.7 制作系统权限维护窗体334.8 制作数据报表33结束语36致谢37参考文献:38附录:39摘要学生信息管理系统是典型的信息管理系统(m
3、is),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。 本文结合学生信息管理的要求,对access数据库管理系统、sql语言原理、vb应用程序设计,vb数据库技术进行了较深入的学习和应用,主要完成对学生信息管理系统的需求分析、功能模块划分、数据库模式分析,并由此设计了数据库结构和应用程序。系统运行结果证明,本文所设计的学生信息管理系统可以满足学生和管理人员的需要。 本系统主要完成对学生信息的信息化管理,包括学生档案信息、班级信息、各专业学生学费信息、学生成绩信息、课程
4、管理信息等多个方面。系统可以完成对各类信息的浏览、查询、添加、删除、修改等功能。系统采用microsoft office中的access 2000来设计数据库,并使用当前优秀的开发工具vb 6.0 ,它有着最为灵活的数据库结构,对数据库应用有着良好的支持。本设计充分利用vb 6.0、access 2000数据库技术的强大力量,提高了编程效率和可靠性。关键词: 学生信息管理 vb 6.0 数据库 ado sql语言 access 2000 数据库组件abstractstudents information management system is the typical information
5、management system(mis), its development mainly includes the establishment and maintenance and head application procedure of the backstage database to develop two aspects.build up a data consistency and integrity to the former request strong,the data safety good database.but then request applied proc
6、edure function to the latter complete, easy usage etc. characteristics. this text combines a student the request ofwith the information management, managing system,sql language principle to the access database,vb application program design, the vb database technique carried on the more thorough stud
7、y and application, the main completion managed the need of the system analysis to students information,the function mold piece demarcation,the database mode analysis, and designed the database structure from here and applied procedure.the system circulates a result a certificate, the student design
8、by this text information management the system can satisfy the demand between student and manager. this system mainly completes the information-based management to students information, including several aspects, such as students file information,class information,each professional students school f
9、ees information,students result information and the course management information.etc.the system can complete to browse each kind of information,search,increase,delete,modify etc. function.the system adopts the access in the microsoft office 2000 to the design database, and use at present the excell
10、ent development tool-vb 6.0, it has the most vivid database structure, having a good support to the database application. this design makes use of vb well 6.0,access 2000 database technical strong strength, raise the plait distance efficiency and credibility.keyword: student the information manageme
11、nt vb 6.0 database ado sql language accesses 2000 database module第1章 系统总体设计1.1应用背景随着计算机的发展及网络技术的应用,当今社会正快速向信息化社会前进,信息自动化的作用也越来越大。而在日常生活中信息技术的不断融入,在技术越来越先进的同时,应该从以前烦琐的事务中解放出来。随着高校对招生规模的不断扩大,学生的数量急剧增加。学籍信息是学校的一项重要的数据资源,学籍管理也是学校的一项常规性的重要工作。而长期以来,学籍管理都是依赖人工进行的,面对如此众多的学籍信息,其工作量可想而知。不仅仅浪费了大量的人力物力,而且由于人工管理
12、存在着大量的不可控因素,造成了学籍管理的某些不规范,使得学籍管理陷入“事倍功半”的地步。面对庞大的信息量,就需要有学生信息管理系统来提高学生管理工作的效率。通过这样的系统,可以方便地查询,统计和修改学生的基本情况,任课老师的情况,学生的课程开课情况和选课情况及成绩,实现信息的规范管理,科学统计和快速查询,从而减少管理方面的工作量,同时避免由于人为因素造成数据遗漏和误报等。1.2开发平台vb6.0介绍学生信息管理系统主要基于visual basic 6.0的开发和数据库microsoft access的相关知识。下面分别对visual basic 6.0和数据库进行简单的介绍。1.2.1visu
13、al basic的诞生及其发展visual意为可视化,指的是开发图形用户界面(gui)的方法,而basic指的是beginner symbol instruction code语言:visual basic就是基于basic的可视化程序设计语言。visual basic在原来basic语言的基础上进行了很大的扩展,其编程思想采用面向对象、事件驱动的编程机制,很好地把windows编程的复杂性封装起来,提供了一种所见即所得的程序设计方法。visual basic最早是1991年microsoft公司推出的,当时是visual basic 1.0,虽然刚推出的版本缺陷很多,但经过microsoft
14、公司的不断努力,随后又相继在1992年、1993年、1995年和1997年推出了2.05.0的版本,1998年推出了6.0。整个过程中功能得到了不断完善和扩充,特别是visual basic 6.0较之以前的版本其功能和性能都大大增强了,尤其是数据库管理网络应用方面更胜一筹。1.2.2visual basic的主要特点面向对象的可视化程序设计。传统的结构化语言,如basic、pascal和c等都是采用面向过程的编程方法。在这些方法中,代码和数据具有很大的分离性,因此这样的程序有很多缺陷,如程序的可读性、可维护性很差。visual basic采用了面向对象的程序设计方法(oop),这种方法是把程
15、序和数据封装在一个类中,类的实例就是对象。每个对象都是可视化的。设计程序时只需用现有的工具根据要求直接拖出所需的对象,并为每一个对象设置属性。程序员的工作紧编写针对对象要完成那些功能的程序。因而程序设计的效率可大大提高。事件驱动的编程机制。传统的程序设计是一种面向过程的设计方式,程序总是按事先设计好的流程进行,而不能将后面的程序放在前面执行,当然用户就不能随意改变、控制程序的流向,这很不符合人类的思维习惯。事件驱动是非常适合图形用户的编程方式,在图形用户界面的应用程序中,程序员只要编写响应用户动作的代码,每个动作之间不一定有联系,这样的应用程序代码较短,当然程序既易编写又易维护。支持多种数据库
16、的访问。数据库的访问特性允许对包括sql server和其他数据库在内的大部分数据库格式建立数据库和前端应用程序。利用数据控件或odbc能访问的数据库系统microsoft access、microsoft foxpro、dbase、paradox等,也可访问microsoft excel、lotus 1-2-3等多种表格。支持动态链接库(dll)、动态数据交换(dde)与对象连接和嵌入(ole)。完备的help联机帮助功能。1.3数据库技术的发展及特点数据库技术是计算机和信息科学增长最迅速的重要领域之一。数据库从20世纪60年代中期产生,距今仅30多年的时间,但其发展速度之快,使用范围之广是
17、其他技术所达不到的。数据库已从第一代的网状,层次数据库和第二代的关系数据库,发展到第三代以面向对象模型为主要特征的数据库,数据库技术与网络通信技术,人工智能技术,面向对象程序设计技术,并行计算技术等的互相渗透,互相配合,成为当前数据库技术发展的主要特征。数据模型是数据库系统的核心和基础技术。因此数据模型的进展决定了数据库的发展,数据库发展阶段的划分一般就以数据模型的发展作为主要依据和标志。其中,第三代数据库以更加丰富的数据模型和更强大的功能为特征,来满足传统数据库难以支持的对多媒体数据类型和使用internet等新的应用要求。1990年美国加州大学伯克利分校教授m.stonebraker与另外
18、5名学者发表了题为“第三代数据库系统宣言”的论文,对第三代数据库管理系统的基本特征进行了论述。他们指出,第三代数据库系统具有以下特征: 支持面向对象数据模型 保持第二代数据库系统所具有的高效,安全,方便等特点。 具有开放性,支持sql语言以及多种网络标准协议等普遍承认的计算机标准 支持多种硬件平台,易于得到扩充和增强。14项目目标开发本系统的总体任务是实现学生信息管理的系统化和自动化,帮助管理员更好更高效地完成学生信息管理工作。本系统要完成的功能如下图:登录选择主窗口系统管理班级管理学生档案管理学生成绩管理课程信息管理学生交费管理退出图1.1系统流程图1.4.1学生档案管理模块管理人员通过此模
19、块来管理学生信息,包括浏览、查询、添加、修改和删除功能。在进行学生信息的添加时,系统会自动检测所添加的学生信息中学生号在学生表中是否已经存在,如果存在,会提示用户该学生已经存在。在进行学生信息的删除时,要首先弹出提示窗口让用户确认是否删除,只有在用户确认后才能够进行学生信息的删除。在进行学生信息的修改时,不准用户修改学号,因为学号作为数据库中学生表的主键是不同学生的唯一标识,不准修改学号可以防止不经意将学号改错;如果确实要修改学生号,可以通过数据库管理员来实现,也可以先将错误学号信息删除再添加正确的学生信息,这样在删除时会弹出提示窗口让用户确认是否删除,给用户以提示,防止意外错误。1.4.2课
20、程管理模块管理人员通过此模块来管理课程信息,包括浏览、查询、添加、修改和删除功能。在进行课程信息的添加时,系统会自动检测所添加的课程在课程表中是否已经存在,如果存在,会提示用户该课程已经存在。在进行课程信息的删除时,要首先弹出提示窗口让用户确认是否删除,只有在用户确认后才能够进行课程信息的删除。1.4.3学生交费管理模块管理人员通过此模块来管理学生交费信息,包括浏览、查询、添加、修改和删除功能。在进行学生交费信息的添加时,系统会自动检测所添加的学生号在学生表中是否已经存在,如果存在,会提示用户该学生已经存在。在进行学生交费信息的删除时,要首先弹出提示窗口让用户确认是否删除,只有在用户确认后才能
21、够进行学生交费信息的删除。在进行学生交费信息的修改时,不准用户修改学号,因为学号作为数据库中学生表的主键是不同学生的唯一标识,不准修改学号可以防止不经意将学号改错;如果确实要修改学生号,可以通过数据库管理员来实现,也可以先将错误学号信息删除再添加正确的学生交费信息,这样在删除时会弹出提示窗口让用户确认是否删除,给用户以提示,防止意外错误。1.4.4班级管理模块管理人员通过此模块来管理班级信息,包括浏览、查询、添加、修改和删除功能。在进行班级信息的添加时,系统会自动检测所添加的班级在班级表中是否已经存在,如果存在,会提示用户该班级已经存在。在进行班级信息的删除时,要首先弹出提示窗口让用户确认是否
22、删除,只有在用户确认后才能够进行班级信息的删除。1.4.5成绩管理模块管理人员通过此模块来管理学生成绩信息,包括浏览、查询、添加、修改和删除功能。在进行学生成绩信息的添加时,系统会自动检测所添加的学生号在学生表中是否已经存在,如果存在,会提示用户该学生已经存在。在进行学生成绩信息的删除时,要首先弹出提示窗口让用户确认是否删除,只有在用户确认后才能够进行学生成绩信息的删除。在进行学生成绩信息的修改时,不准用户修改学号,因为学号作为数据库中学生表的主键是不同学生的唯一标识,不准修改学号可以防止不经意将学号改错;如果确实要修改学生号,可以通过数据库管理员来实现,也可以先将错误学号信息删除再添加正确的
23、学生成绩信息,这样在删除时会弹出提示窗口让用户确认是否删除,给用户以提示,防止意外错误。15解决方案设计1.5.1 系统功能设计本系统使用visual basic 6.0作为开发语言,将数据库存储到access数据库。使用ado连接数据库。根据项目目标可以得到如下的结构图。学生综合管理系统用户登录系统主界面档案管理学费管理成绩管理课程管理系统维护档案浏览档案添加档案查询报表打印成绩浏览提交成绩成绩查询学费设置交纳学费报表打印增加课程设定课程报表打印增加用户权限修改图1.2系统结构图1.5.2系统模块功能分析本系统包括如下功能模块:1系统管理模块系统管理添加用户修改密码重新登录图1.3系统管理模
24、块图2班级信息管理模块班级信息管理班级浏览添加班级班级浏览图1.4班级信息管理模块图3学生档案管理模块学生档案管理档案添加档案浏览档案查询图1.5学生档案管理模块图4.学生成绩管理模块学生成绩管理考试类型设置成绩添加成绩浏览成绩查询图1.6学生成绩管理模块图5.课程信息管理模块课程信息管理基本课程设置班级课程设置图1.7课程信息管理模块图6.学生交费管理模块学生交费管理学生交费浏览基本学费设置学生交费添加学生交费查询学费设置浏览学费设置添加学费设置查询图1.8学生交费管理模块图第2章 数据库设计2.1数据库的er图1)学生档案数据的管理,包括学号、姓名、性别、班级、出生年月、家庭住址和入学时间
25、。学生档案数据学号姓名性别入学时间班级出生年月家庭住址图2.1.1学生档案数据实体图2)班级信息数据的管理,包括年级、班级、年制、班主任和备注。班级信息年级备注班级年制班主任图2.1.2班级信息实体图3)课程种类数据的管理,包括课程名称和教材。课程种类数据课程名称教材图2.1.3课程种类数据实体图4)学生成绩数据的管理,包括学号、学期、类型、课程名称和分数。学生成绩数据分数学号学期类型课程名称图2.1.4学生成绩数据实体图5)课程信息数据的管理,包括年级、专业、年制、学期和课程名称。课程信息数据班级专业课程名称学期年制图2.1.5课程信息数据实体图6)管理人员数据的管理,包括username、
26、password、admin、readonly、qx1、qx2、qx3和qx4。管理人员数据qxx4 password admin qx2 qx2 username qx1 readonly qx3 图2.1.6管理人员数据实体图7)学费数据的管理,包括年级、专业、年制、学期和学费。学费数据学费年级专业年制学期图2.1.7学费数据实体图8)学生交费数据的管理,包括学号、学期、交费、欠费、日期和操作员。学生交费数据日期操作员学号欠费交费学期图2.1.8学生交费数据实体图2.2数据库与数据表的创建本系统数据采用access数据库,使用visdata或在access环境下创建数据库stud.mdb文
27、件。该数据库包括学生档案表、班级信息表、各专业学生学费表等,该数据库包括8个不同专题的表,各表包含的字段含义如下。1学生档案表(student)用与记录学生的基本档案表1.1 学生档案表字段名类型大小说明学号文本10学生学号姓名文本8学生姓名性别文本2学生性别班级文本10班级出生年月日期/时间家庭住址文本30入学时间日期/时间学生入学时间2班级信息表(class)用于记录学校所有班级信息,数据表结构如下:表1.2 班级信息表字段名类型大小说明年级文本16班级文本20年制文本8学习年限班主任文本8备注文本3课程种类表(kindcourse)用于记录所有开设课程种类,数据表结构如下:表1.3 课程
28、种类表字段名类型大小说明课程名称文本20记录课程名称教材文本30所使用教材4学生成绩表(score)用于记录学生各科考试成绩,数据表结构如下:表1.4 学生成绩表字段名类型大小说明学号文本10学生学号学期文本50类型文本16期中/期末课程名称文本20分数数字单精度型考试成绩5课程信息表(allcourse)用来保存不同年级、专业、学制、学期开设的课程,数据表结构如下:表1.5 课程信息表字段名类型大小说明年级文本16专业文本12专业类别年制文本8学习年限学期文本50课程名称文本20开设课程6管理人员表(user)用来保存合法管理员信息,数据表结构如下:表1.6 管理人员表字段名类型大小说明us
29、ername文本20用户名password文本20密码admin文本2是否为管理员readonly文本2是否只读用户qx1文本2是否有系统管理权限qx2文本2是否有档案管理权限qx3文本2是否有交费管理权限qx4文本2是否有成绩管理权限7学费表(tuition)用来记录不同年级不同专业学费情况,数据表结构如下:表1.7 学费表字段名类型大小说明年级文本16专业文本50年制文本20学习年限学期文本40学费货币应缴纳学费8学生交费情况表(studtuition)用来记录学生在校期间缴纳学费情况,数据表结构如下:表1.8 学生交费情况表字段名类型大小说明学号文本10学期文本50交费货币已缴纳学费欠费
30、货币欠费额日期日期/时间记录时间操作员文本10添加记录人员第3章 技术细节3.1recordset数据对象recordset对象是数据记录的集合,而数据记录有事字段的集合,因此利用recordset对象,在程序中就可以存取所有数据记录的每一个字段的数据了,所以说recordset对象是存取数据库数据最重要的源头,在数据库的程序设计中,recordset对象堪称为重要的对象。字段的集合构成数据记录,记录的集合构成数据表。在vb中与数据表对应的对象称为recordset(数据记录集合)对象。利用recordset对象,在程序中就可以存取所有数据记录的每一个字段的数据了。打开recordset时,当
31、前记录位于第一个记录(如果有),并且bof和eof属性被设置为false。如果没有记录,bof和eof属性设置是ture。假设提供者支持相关的功能,可以使用movefirst、movelast、movenext和moveprevious方法以及move方法、absoluteposition、absolutepage和filter属性来重新确定当前记录的位置。仅向前recordset对象只支持movenext方法。当使用move方法访问每个记录(或枚举recordset)时,可使用bof和eof属性查看是否移动已经超过了recordset的开始或结尾。recordset对象可支持两类更新:立即更
32、新和批更新。使用立即更新,一旦调用update方法,对数据的所有更改将被立即写入基本数据源。也可以使用addnew和update方法将值的数组作为参数传递,同时更新记录的若干字段。如果提供者支持批更新,可以使提供者将多个记录的更改存入缓存,然后使用updatebatch方法在单个调用中将他们传送给数据库。这种情况应用于使用addnew、update和delete方法所做的更改。调用updatebatch方法后,可以使用status属性检查任何数据冲突并加以解决。3.2addnew方法创建可更新recordset对象的新记录。基本语法为recordset.addnew fieldlist, va
33、lues其中,参数fieldlist可选,表示新记录中字段的单个名称、一组名称或序号位置。values可选,表示新记录中字段的单个或一组值。如果fields是数组,那么values也必须是有相同成员数的数组,否则将发生错误。字段名称的次序必须与每个数组中的字段值的次序相匹配。通过adaddnew使用supports方法可验证是否能够将记录添加到当前的recordset对象。在调用recordset方法后,新记录将成为当前记录,并在调用update方法后继续保持当前记录。如果recordset对象不支持书签,当移动到其他记录时将无法对新记录进行访问。是否需要调用requery方法访问新记录则取决
34、于所使用的游标类型。addnew方法的行为取决于recordset对象的更新模式以及是否传送fields和values参数。在立即更新模式(调用update方法时提供者会立即将更改写入基本数据源)下,调用不带参数的addnew方法可将editmode属性设置为adeditadd。提供者将任何字段值的更改缓存在本地。调用update方法可将新的记录传递到数据库并将editmode属性重置为adeditnone。如果传送了fields和values参数,则立即将新记录传递到数据库(无须调用update),且editmode属性值没有改变(adeditnone)。在批更新模式(提供者缓存多个更改并只
35、在调用updatebatch时将其写入基本数据源)下,调用不带参数的addnew方法可将editmode属性设置为adeditadd。提供者将任何字段值的更改缓存在本地。调用update方法可将新的记录添加到当前记录集并将editmode属性重置为adeditnone,但在调用updatebatch方法之前提供者不将更改传递到基本数据库。如果传送了fields和values参数,则将新记录发送给提供者以便缓存;需要调用updatebatch方法将新记录传递到基本数据库。如果unique table动态属性被设置,并且recordset是对多个表执行join操作的结果,那么,addnew方法只能
36、将字段插入到由unique table属性所命名的表中。3.3delete方法delete方法删除当前记录或记录组。语法为recordset.delete affectrecords参数affectrecords确定delete方法所影响的记录数目,该值可以是表常量之一。表affectrecords取值常量说明adaffectcurrent默认。仅删除当前记录adaffectgroup删除满足当前filter属性设置的记录。要使用该选项,必须将filter属性设置为有效的预定义常量之一adaffectall删除所有记录adaffectallchapters删除所有子集记录使用delete方法可
37、将recordset对象中的当前记录标记为删除。如果recordset对象不允许删除记录将引发错误。使用立即更新模式将在数据库中进行立即删除,否则记录将标记为从缓存删除,实际的删除将在调用updatebatch方法时进行。(使用filter属性可查看已删除的记录)。从已删除的记录中检索字段值将引发错误。删除当前记录后,在移动到其他记录之前已删除的记录将保存为当前记录。一旦离开已删除记录,则无法再次访问它。如果在事务中嵌套删除,可用rollbacktrans方法恢复已删除的记录。如果处于批更新模式,则可用cancelbatch方法取消一个或一组挂起删除。如果因与基本数据冲突而导致删除记录失败(如
38、记录已被其他用户删除),则提供者向errors集合返回警告但不终止程序执行,只有在所有提出请求的记录上发生冲突时才会产生运行时错误。如果uniquetable动态属性被设置,并且recordset是对多个表执行join操作的结果,那么,delete方法将仅删除uniquetable属性所命名的表中的行。3.4move移动记录移动3.4recordset对象中的当前记录的位置。recordset.move numrecords,start其中,参数numrecords为带符号长整形表达式,指定当前记录位置移动的记录数。start可选,字符串或变体形,用于计算书签,也可为表列出的bookmarke
39、num值之一。常量说明adbookmarkcurrent默认。从当前记录开始adbookmarkfirst从首记录开始adbookmarklast从尾记录开始所有recordset对象都支持move方法。如果numrecords参数大于零,则当前记录位置将向前移动(向记录集的末尾)。如果numrecords小于零,则当前记录位置向后移动(向记录集的开始)。如果move调用将当前记录位置移动到首记录之前,则当前记录放置在记录集(bof为true)的首记录之前。在bof属性已经为true时试图向后移动将产生错误。如果move调用将当前记录位置移动到尾记录之后,则当前记录放置在记录集(eof为tru
40、e)的尾记录之后。在eof属性已经为true时试图向前移动将产生错误。从空的recordset对象调用move方法将产生错误。如果传送start参数,则移动相对于该书签的记录(假定recordset对象支持书签)。如果没有指定,则移动相对于当前记录。如果使用cahesize属性在本地缓存来自提供者的记录,则在传送将当前记录位置移动到当前缓存的记录组之外的numrecords参数时,从目标记录开始检索新的记录组。cahesize属性决定新检索记录组的大小,而且标记录是检索到的第一个记录。如果recordset对象是仅向前的,则用户仍然可以传送小于零的numrecords参数(只要目标在已缓存记录
41、的当前集合中)。如果move调用将当前记录位置移动到第一个已缓存记录的前一个记录,将产生错误。因此可使用记录缓存,他在支持仅向前滚动的提供者上支持完全滚动。由于缓存的记录将加载到内存,因此应避免不必要地缓存过多记录。即使仅向前recordset对象支持这种方式的向后移动,在任何仅向前的recordset对象上调用moveprevious方法将产生错误。3.5movefirst、movelast、movenext和moveprevious方法在指定recordset对象中移动到第一个、最后一个、下一个或前一个记录并使该记录成为当前记录。语法:recordset.movefirst | movel
42、ast | movenext | moveprevious说明如下:使用movefirst方法将当前记录位置移到recordse中的第一个记录。使用movelast方法将当前记录位置移动到recordse中的最后一个记录。recordset对象必须支持书签或向后光标移动;否则调用该方法将产生错误。使用movenext方法将当前记录向前移动一个记录(向recordset的底部)。如果最后一个记录是当前记录并且调用movenext方法,则将当前记录设置到recordset(eof为true)的尾记录之后。当eof属性已经为true时试图向前移动将产生错误。使用moveprevious方法将当前记录
43、位置向后移动一个记录(向记录集的顶部)。recordset对象必须支持书签或向后游标移动;否则方法调用将产生错误。如果首记录是当前记录并且调用moveprevious方法,则将当前记录设置在recordset(bof为true)的首记录之前。而bof属性为true时向后移动将产生错误。如果recordset对象不支持书签或向后游标移动,则moveprevious方法将产生错误。如果记录集是仅向前的,但是用户希望支持向前或向后滚动,则可以使用cachesize属性创建记录缓存,通过move方法支持向后游标移动。由于缓存记录是加载到内存中的,所以应避免不必要地缓存太多记录。可以调用仅向前recor
44、dset对象的movefirst方法;这样做可使提供者重新执行生成的recordset对象的命令。3.6save方法,保存记录save方法将recordset保存(持久)在文件中。recordset.save filename, persistformat参数filename可选,代表文件的完整路径名,用于保存recordset。persistformat可选,用于指定保存recordset所使用的格式。也可以是表中的某个常量。常量说明adpersistadtg(默认)使用专用的“advanced data tablegram”格式保存adpersistxml使用xml格式保存。只能对打开的r
45、ecordset调用save方法。随后使用open方法可由filename恢复recordset。如果filter属性影响recordset,将只保存经过筛选的行。如果recordset是分级结构的,那么将保存当前子recordset和他的子recordset,但不保存上一级recordset。在第一次保存recordset时指定filename。如果随后调用save,应忽略filename,否则将产生运行时错误。如果随后使用新的filename调用save,那么recordset将保存到新的文件中,但新文件和原始文件都是打开的。save不关闭recordset或filename,从而可以继续
46、使用recordset并保存最新的更改。在recordset关闭之前filename将保持打开,在这段时间其他应用程序可以读取但不能写入filename。处于安全的原因,对由microsoft internet explorer执行的脚本,save方法仅允许使用低的和自定义的安全设置如果正在进行异步recordset获取、执行或更新操作时调用save方法,则save将进入等待状态,直到异步操作完成。在save方法完成后,当前行位置将成为recordset的首行。要得到最佳结果,应使用save将cursorlocation属性设置为aduseclient。如果提供者不支持用于保存recordse
47、t对象的所需功能,则客户端游标将提供该功能。3.7update方法update方法保存对recordset对象的当前记录所做的所有更改。recordset.update fields,values其中,参数fields可选,为变体型,代表单个名称;或变体型数组,代表需要修改的字段(一个或多个)名称及序号位置。values可选,为变体型,代表单个值;或变体型数组,代表新记录中字段(单个或多个)值。使用update方法保存自调用addnew方法或更改现有记录中任何字段值以来所做的所有更改。recordset对象必须支持更新。要设置字段值,请进行下列某项操作:1) 为对象的value属性赋值,并调用
48、update方法。2) 在update调用中传送字段名和值作为参数。3) 在update调用中传送字段名数组和值数组。在使用字段和值的数组时,两个数组中必须有相等数量的元素,同时字段名的次序必须匹配字段值的次序。字段和值的数量及次序不匹配将产生错误。如果希望取消对当前记录所做的任何更改或者放弃新添加的记录,则必须调用cancelupdate方法。在调用update方法后当前记录仍为当前记录。如果设置了unique table动态属性,并且recordset是对多个表执行join操作的结果,那么,update方法将无法更新多个表的任何主要关键字。此外,update只能更新在unique tabl
49、e属性中指定的表中的字段。3.8datagrid控件介绍虽然adodc控件具有存取数据库数据的能力,但却没有提供显示数据的功能,如果想要显示数据的内容,除了利用adodc来读取数据之外,还得编写显示数据的程序。比较简单的方法是使用datagrid控件。datagrid控件的作用就是显示并允许对recordset对象中代表记录和字段的一系列行和列进行数据操纵。该数据识别的datagrid控件看起来与grid控件类似。可以设置datagrid控件的datasource属性为一个grid控件,以自动填充该控件并且从data控件的recordset对象自动设置其列标头。这个datagrid控件实际上是
50、一个固定的列集合,每一列的行数都是不确定的。datagrid控件的每一个单元格都可以包含文本值,但不能链接或内嵌对象。可以在代码中指定当前单元格,或者用户可以使用鼠标或箭头键在运行是改变他,通过在单元格中键入或编程的方式,单元格可以交互地编辑。单元格能够被单独地选定或按照行来选定。如果一个单元格的文本太长,则不能在单元格中全部显示,文本将在同一单元格内拆行到下一行。要显示拆行的文本,必须增加单元格的column对象的width属性和datagrid控件的rowheight属性。在设计时,可以通过调节列来交互地改变列宽度,或在column对象的属性页中改变列宽度。使用datagrid控件的col
51、umns集合的count属性和recordset对象的recordcount属性,可以决定控件中行和列的数目。datagrid控件的可包含的行数取决于系统的资源,而列树最多可达32767列。选择一个单元格,则colindex属性被设置,也就是选择了datagrid对象的columns集合中的column对象。column对象的text和value属性引用当前单元格的内容。使用bookmark属性能够访问当前行的数据,他能够提供对下一级recordset对象中记录的访问。datagrid控件中的每一列都有自己的字体、边框、自动换行和另外一些和其他列无关的能够被设置的属性。在设计时,可以设置列宽和
52、行高,并且建立对用户不可见的列。还能阻止用户在运行时改变格式。第4章 功能模块设计4.1登录窗口设计当单击确定按钮后,首先判断用户名输入是否为空,如果为空,给出提示。如果不为空,在系统数据库中的系统信息表中检查是否有这个用户名,这需要定义一个字符串类型的变量接收sql语句、一个recordset对象变量打开数据库,在程序起始部分定义这两个变量。打开数据表,查找是否有这个用户名,如果没有则给出提示。如果在数据表中确实存在这个用户名,则检查对应的密码是否正确,如果不正确则给出提示,并要求用户重新输入密码。如果用户名和密码都正确,则记录当前用户的用户名和权限,关闭数据对象,关闭窗体,同时加载主窗体。
53、4.2 创建系统主控界面用户在登陆界面输入合法用户名和密码后,即登陆成功,马上就进入了系统主控界面。在初始化主控界面时,首先判断当前登陆用户的权限,来限制其操作功能。从管理人员表中我们知道不同等级的用户其操作受限程度不同。这里主控界面命名为mdiform1,界面如图所示。4.2.1 实现菜单功能分别单击各个菜单项,则打开相应的窗体。分别的目标菜单的click事件中使用show方法打开相应的菜单即可。4.2.2实现状态栏功能在主控界面中,最主要的是菜单,通告菜单来调其他功能窗体的运行。其次是设计状态信息栏,用于显示登录用户相关信息。用户状态信息的显示主要通过toolbar1控件来实现。4.3 创
54、建学生档案管理窗体学生档案管理窗体用于管理学生的基本档案,包括档案浏览、档案添加、档案查询。4.3.1添加学生档案窗体该窗体用于学生入学时录入基本信息,并保存于学生档案表。界面如下图所示。本界面使用了一个text控件数组、一个combobox控件数组用于学生档案信息的输入;一个command1命令按钮用于信息的提交,一个用于取消的command2命令按钮。4.3.2学生档案浏览窗体该窗体实现学生档案信息的浏览、包括查询、修改、删除和报表打印功能,其中查询调用查询窗体,修改调用窗体。窗体界面如下图所示。该窗体上增加了一个datagrid控件,用于显示档案信息,4个命令按钮command,分别用于查询、修改、删除和打印功能。当单击“查询”按钮时,调用学生档案窗体,这个窗体的设计在后面介绍;当选定表格中的一条记录,然后单击“修改”按钮时,调用前面介绍过的窗体来修改学生档案信息;当然在选定表格中一条记录时,也可以单击“删除”按钮将其删除;“打印”按钮用于打印当前表格中的档案信息。4.3.3学生档案窗体该窗体实现对学生档案信息的查询,查询结果显示在学生档案浏览窗体中。窗体界面如图所示。这
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑施工反垄断合同范本
- 农药生产架电施工合同
- 涂料施工销售渠道合同
- 林业开发供货施工合同范本
- 餐饮与企业合同范例
- 饭店公司合伙合同范例
- 公路工程项目合同进度检查内容表格
- 集体合同约定的最低工资和当地最低工资标准
- 门诊医疗器械销售合同范例
- 赠与合同范例15篇
- (完整word版)首件检验管理制度
- 线路工程灌注桩施工作业指导书施工方案
- 重力坝的分缝与止水
- 三重管高压旋喷桩施工工艺规程与施工方案
- 个体诊所药品清单
- PFMEA的严重度SOD的评分和优先级别
- 国网基建国家电网公司输变电工程结算管理办法
- 100道递等式计算(能巧算得要巧算)
- 中国地图含省份信息可编辑矢量图
- 路政运政交通运输执法人员考试题库
- 企业技术标准化管理
评论
0/150
提交评论