《[计算机软件及应用]最新基于VB60学生信息管理系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《[计算机软件及应用]最新基于VB60学生信息管理系统的设计与实现.doc(57页珍藏版)》请在三一办公上搜索。
1、目录摘要3Abstract3第1章 系统总体设计51.1应用背景51.2开发平台VB6.0介绍51.3数据库技术的发展及特点614项目目标715解决方案设计10第2章 数据库设计122.1数据库的ER图122.2数据库与数据表的创建15第3章 技术细节183.1Recordset数据对象183.2Addnew方法193.3Delete方法203.4Move移动记录213.5MoveFirst、MoveLast、MoveNext和MovePrevious方法223.6Save方法,保存记录233.7Update方法243.8DataGrid控件介绍24第4章 功能模块设计264.1登录窗口设计2
2、64.2 创建系统主控界面264.3 创建学生档案管理窗体274.4 创建学生成绩管理窗体294.5 学生交费管理窗体的制作304.6 课程管理窗体的制作314.7 制作系统权限维护窗体334.8 制作数据报表33结束语36致谢37参考文献:38附录:39摘要学生信息管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。 本文结合学生信息管理的要求,对Access数据库管理系统、SQL语言原理、VB应用程序设计,VB数据库技术进行了较深
3、入的学习和应用,主要完成对学生信息管理系统的需求分析、功能模块划分、数据库模式分析,并由此设计了数据库结构和应用程序。系统运行结果证明,本文所设计的学生信息管理系统可以满足学生和管理人员的需要。 本系统主要完成对学生信息的信息化管理,包括学生档案信息、班级信息、各专业学生学费信息、学生成绩信息、课程管理信息等多个方面。系统可以完成对各类信息的浏览、查询、添加、删除、修改等功能。系统采用Microsoft Office中的Access 2000来设计数据库,并使用当前优秀的开发工具VB 6.0 ,它有着最为灵活的数据库结构,对数据库应用有着良好的支持。本设计充分利用VB 6.0、Access 2
4、000数据库技术的强大力量,提高了编程效率和可靠性。关键词: 学生信息管理 VB 6.0 数据库 ADO SQL语言 Access 2000 数据库组件AbstractStudents information management system is the typical information management system(MIS), its development mainly includes the establishment and maintenance and head application procedure of the backstage database to
5、develop two aspects.Build up a data consistency and integrity to the former request strong,the data safety good database.But then request applied procedure function to the latter complete, easy usage etc. characteristics. This text combines a student the request ofwith the information management, ma
6、naging system,SQL language principle to the Access database,VB application program design, the VB database technique carried on the more thorough study and application, the main completion managed the need of the system analysis to students information,the function mold piece demarcation,the databas
7、e mode analysis, and designed the database structure from here and applied procedure.The system circulates a result a certificate, the student design by this text information management the system can satisfy the demand between student and manager. This system mainly completes the information-based
8、management to students information, including several aspects, such as students file information,class information,each professional students school fees information,students result information and the course management information.etc.The system can complete to browse each kind of information,searc
9、h,increase,delete,modify etc. function.The system adopts the Access in the Microsoft Office 2000 to the design database, and use at present the excellent 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
10、well 6.0,Access 2000 database technical strong strength, raise the plait distance efficiency and credibility.Keyword: Student the information management VB 6.0 database ADO SQL language Accesses 2000 Database module第1章 系统总体设计1.1应用背景随着计算机的发展及网络技术的应用,当今社会正快速向信息化社会前进,信息自动化的作用也越来越大。而在日常生活中信息技术的不断融入,在技术越
11、来越先进的同时,应该从以前烦琐的事务中解放出来。随着高校对招生规模的不断扩大,学生的数量急剧增加。学籍信息是学校的一项重要的数据资源,学籍管理也是学校的一项常规性的重要工作。而长期以来,学籍管理都是依赖人工进行的,面对如此众多的学籍信息,其工作量可想而知。不仅仅浪费了大量的人力物力,而且由于人工管理存在着大量的不可控因素,造成了学籍管理的某些不规范,使得学籍管理陷入“事倍功半”的地步。面对庞大的信息量,就需要有学生信息管理系统来提高学生管理工作的效率。通过这样的系统,可以方便地查询,统计和修改学生的基本情况,任课老师的情况,学生的课程开课情况和选课情况及成绩,实现信息的规范管理,科学统计和快速
12、查询,从而减少管理方面的工作量,同时避免由于人为因素造成数据遗漏和误报等。1.2开发平台VB6.0介绍学生信息管理系统主要基于Visual Basic 6.0的开发和数据库Microsoft Access的相关知识。下面分别对Visual Basic 6.0和数据库进行简单的介绍。1.2.1Visual Basic的诞生及其发展Visual意为可视化,指的是开发图形用户界面(GUI)的方法,而Basic指的是Beginner Symbol Instruction Code语言:Visual Basic就是基于Basic的可视化程序设计语言。Visual Basic在原来Basic语言的基础上进
13、行了很大的扩展,其编程思想采用面向对象、事件驱动的编程机制,很好地把Windows编程的复杂性封装起来,提供了一种所见即所得的程序设计方法。Visual Basic最早是1991年Microsoft公司推出的,当时是Visual Basic 1.0,虽然刚推出的版本缺陷很多,但经过Microsoft公司的不断努力,随后又相继在1992年、1993年、1995年和1997年推出了2.05.0的版本,1998年推出了6.0。整个过程中功能得到了不断完善和扩充,特别是Visual Basic 6.0较之以前的版本其功能和性能都大大增强了,尤其是数据库管理网络应用方面更胜一筹。1.2.2Visual
14、Basic的主要特点面向对象的可视化程序设计。传统的结构化语言,如BASIC、Pascal和C等都是采用面向过程的编程方法。在这些方法中,代码和数据具有很大的分离性,因此这样的程序有很多缺陷,如程序的可读性、可维护性很差。Visual Basic采用了面向对象的程序设计方法(OOP),这种方法是把程序和数据封装在一个类中,类的实例就是对象。每个对象都是可视化的。设计程序时只需用现有的工具根据要求直接拖出所需的对象,并为每一个对象设置属性。程序员的工作紧编写针对对象要完成那些功能的程序。因而程序设计的效率可大大提高。事件驱动的编程机制。传统的程序设计是一种面向过程的设计方式,程序总是按事先设计好
15、的流程进行,而不能将后面的程序放在前面执行,当然用户就不能随意改变、控制程序的流向,这很不符合人类的思维习惯。事件驱动是非常适合图形用户的编程方式,在图形用户界面的应用程序中,程序员只要编写响应用户动作的代码,每个动作之间不一定有联系,这样的应用程序代码较短,当然程序既易编写又易维护。支持多种数据库的访问。数据库的访问特性允许对包括SQL Server和其他数据库在内的大部分数据库格式建立数据库和前端应用程序。利用数据控件或ODBC能访问的数据库系统Microsoft Access、Microsoft FoxPro、dBASE、Paradox等,也可访问Microsoft Excel、Lotu
16、s 1-2-3等多种表格。支持动态链接库(DLL)、动态数据交换(DDE)与对象连接和嵌入(OLE)。完备的Help联机帮助功能。1.3数据库技术的发展及特点数据库技术是计算机和信息科学增长最迅速的重要领域之一。数据库从20世纪60年代中期产生,距今仅30多年的时间,但其发展速度之快,使用范围之广是其他技术所达不到的。数据库已从第一代的网状,层次数据库和第二代的关系数据库,发展到第三代以面向对象模型为主要特征的数据库,数据库技术与网络通信技术,人工智能技术,面向对象程序设计技术,并行计算技术等的互相渗透,互相配合,成为当前数据库技术发展的主要特征。数据模型是数据库系统的核心和基础技术。因此数据
17、模型的进展决定了数据库的发展,数据库发展阶段的划分一般就以数据模型的发展作为主要依据和标志。其中,第三代数据库以更加丰富的数据模型和更强大的功能为特征,来满足传统数据库难以支持的对多媒体数据类型和使用Internet等新的应用要求。1990年美国加州大学伯克利分校教授M.Stonebraker与另外5名学者发表了题为“第三代数据库系统宣言”的论文,对第三代数据库管理系统的基本特征进行了论述。他们指出,第三代数据库系统具有以下特征: 支持面向对象数据模型 保持第二代数据库系统所具有的高效,安全,方便等特点。 具有开放性,支持SQL语言以及多种网络标准协议等普遍承认的计算机标准 支持多种硬件平台,
18、易于得到扩充和增强。14项目目标开发本系统的总体任务是实现学生信息管理的系统化和自动化,帮助管理员更好更高效地完成学生信息管理工作。本系统要完成的功能如下图:登录选择主窗口系统管理班级管理学生档案管理学生成绩管理课程信息管理学生交费管理退出图1.1系统流程图1.4.1学生档案管理模块管理人员通过此模块来管理学生信息,包括浏览、查询、添加、修改和删除功能。在进行学生信息的添加时,系统会自动检测所添加的学生信息中学生号在学生表中是否已经存在,如果存在,会提示用户该学生已经存在。在进行学生信息的删除时,要首先弹出提示窗口让用户确认是否删除,只有在用户确认后才能够进行学生信息的删除。在进行学生信息的修
19、改时,不准用户修改学号,因为学号作为数据库中学生表的主键是不同学生的唯一标识,不准修改学号可以防止不经意将学号改错;如果确实要修改学生号,可以通过数据库管理员来实现,也可以先将错误学号信息删除再添加正确的学生信息,这样在删除时会弹出提示窗口让用户确认是否删除,给用户以提示,防止意外错误。1.4.2课程管理模块管理人员通过此模块来管理课程信息,包括浏览、查询、添加、修改和删除功能。在进行课程信息的添加时,系统会自动检测所添加的课程在课程表中是否已经存在,如果存在,会提示用户该课程已经存在。在进行课程信息的删除时,要首先弹出提示窗口让用户确认是否删除,只有在用户确认后才能够进行课程信息的删除。1.
20、4.3学生交费管理模块管理人员通过此模块来管理学生交费信息,包括浏览、查询、添加、修改和删除功能。在进行学生交费信息的添加时,系统会自动检测所添加的学生号在学生表中是否已经存在,如果存在,会提示用户该学生已经存在。在进行学生交费信息的删除时,要首先弹出提示窗口让用户确认是否删除,只有在用户确认后才能够进行学生交费信息的删除。在进行学生交费信息的修改时,不准用户修改学号,因为学号作为数据库中学生表的主键是不同学生的唯一标识,不准修改学号可以防止不经意将学号改错;如果确实要修改学生号,可以通过数据库管理员来实现,也可以先将错误学号信息删除再添加正确的学生交费信息,这样在删除时会弹出提示窗口让用户确
21、认是否删除,给用户以提示,防止意外错误。1.4.4班级管理模块管理人员通过此模块来管理班级信息,包括浏览、查询、添加、修改和删除功能。在进行班级信息的添加时,系统会自动检测所添加的班级在班级表中是否已经存在,如果存在,会提示用户该班级已经存在。在进行班级信息的删除时,要首先弹出提示窗口让用户确认是否删除,只有在用户确认后才能够进行班级信息的删除。1.4.5成绩管理模块管理人员通过此模块来管理学生成绩信息,包括浏览、查询、添加、修改和删除功能。在进行学生成绩信息的添加时,系统会自动检测所添加的学生号在学生表中是否已经存在,如果存在,会提示用户该学生已经存在。在进行学生成绩信息的删除时,要首先弹出
22、提示窗口让用户确认是否删除,只有在用户确认后才能够进行学生成绩信息的删除。在进行学生成绩信息的修改时,不准用户修改学号,因为学号作为数据库中学生表的主键是不同学生的唯一标识,不准修改学号可以防止不经意将学号改错;如果确实要修改学生号,可以通过数据库管理员来实现,也可以先将错误学号信息删除再添加正确的学生成绩信息,这样在删除时会弹出提示窗口让用户确认是否删除,给用户以提示,防止意外错误。15解决方案设计1.5.1 系统功能设计本系统使用Visual Basic 6.0作为开发语言,将数据库存储到Access数据库。使用ADO连接数据库。根据项目目标可以得到如下的结构图。学生综合管理系统用户登录系
23、统主界面档案管理学费管理成绩管理课程管理系统维护档案浏览档案添加档案查询报表打印成绩浏览提交成绩成绩查询学费设置交纳学费报表打印增加课程设定课程报表打印增加用户权限修改图1.2系统结构图1.5.2系统模块功能分析本系统包括如下功能模块:1系统管理模块系统管理添加用户修改密码重新登录图1.3系统管理模块图2班级信息管理模块班级信息管理班级浏览添加班级班级浏览图1.4班级信息管理模块图3学生档案管理模块学生档案管理档案添加档案浏览档案查询图1.5学生档案管理模块图4.学生成绩管理模块学生成绩管理考试类型设置成绩添加成绩浏览成绩查询图1.6学生成绩管理模块图5.课程信息管理模块课程信息管理基本课程设
24、置班级课程设置图1.7课程信息管理模块图6.学生交费管理模块学生交费管理学生交费浏览基本学费设置学生交费添加学生交费查询学费设置浏览学费设置添加学费设置查询图1.8学生交费管理模块图第2章 数据库设计2.1数据库的ER图1)学生档案数据的管理,包括学号、姓名、性别、班级、出生年月、家庭住址和入学时间。学生档案数据学号姓名性别入学时间班级出生年月家庭住址图2.1.1学生档案数据实体图2)班级信息数据的管理,包括年级、班级、年制、班主任和备注。班级信息年级备注班级年制班主任图2.1.2班级信息实体图3)课程种类数据的管理,包括课程名称和教材。课程种类数据课程名称教材图2.1.3课程种类数据实体图4
25、)学生成绩数据的管理,包括学号、学期、类型、课程名称和分数。学生成绩数据分数学号学期类型课程名称图2.1.4学生成绩数据实体图5)课程信息数据的管理,包括年级、专业、年制、学期和课程名称。课程信息数据班级专业课程名称学期年制图2.1.5课程信息数据实体图6)管理人员数据的管理,包括username、password、admin、readonly、qx1、qx2、qx3和qx4。管理人员数据Qxx4 Password Admin Qx2 qx2 Username Qx1 Readonly Qx3 图2.1.6管理人员数据实体图7)学费数据的管理,包括年级、专业、年制、学期和学费。学费数据学费年级
26、专业年制学期图2.1.7学费数据实体图8)学生交费数据的管理,包括学号、学期、交费、欠费、日期和操作员。学生交费数据日期操作员学号欠费交费学期图2.1.8学生交费数据实体图2.2数据库与数据表的创建本系统数据采用Access数据库,使用VisData或在Access环境下创建数据库Stud.mdb文件。该数据库包括学生档案表、班级信息表、各专业学生学费表等,该数据库包括8个不同专题的表,各表包含的字段含义如下。1学生档案表(Student)用与记录学生的基本档案表1.1 学生档案表字段名类型大小说明学号文本10学生学号姓名文本8学生姓名性别文本2学生性别班级文本10班级出生年月日期/时间家庭住
27、址文本30入学时间日期/时间学生入学时间2班级信息表(Class)用于记录学校所有班级信息,数据表结构如下:表1.2 班级信息表字段名类型大小说明年级文本16班级文本20年制文本8学习年限班主任文本8备注文本3课程种类表(KindCourse)用于记录所有开设课程种类,数据表结构如下:表1.3 课程种类表字段名类型大小说明课程名称文本20记录课程名称教材文本30所使用教材4学生成绩表(Score)用于记录学生各科考试成绩,数据表结构如下:表1.4 学生成绩表字段名类型大小说明学号文本10学生学号学期文本50类型文本16期中/期末课程名称文本20分数数字单精度型考试成绩5课程信息表(allCou
28、rse)用来保存不同年级、专业、学制、学期开设的课程,数据表结构如下:表1.5 课程信息表字段名类型大小说明年级文本16专业文本12专业类别年制文本8学习年限学期文本50课程名称文本20开设课程6管理人员表(User)用来保存合法管理员信息,数据表结构如下:表1.6 管理人员表字段名类型大小说明Username文本20用户名Password文本20密码Admin文本2是否为管理员Readonly文本2是否只读用户qx1文本2是否有系统管理权限qx2文本2是否有档案管理权限qx3文本2是否有交费管理权限qx4文本2是否有成绩管理权限7学费表(Tuition)用来记录不同年级不同专业学费情况,数据
29、表结构如下:表1.7 学费表字段名类型大小说明年级文本16专业文本50年制文本20学习年限学期文本40学费货币应缴纳学费8学生交费情况表(Studtuition)用来记录学生在校期间缴纳学费情况,数据表结构如下:表1.8 学生交费情况表字段名类型大小说明学号文本10学期文本50交费货币已缴纳学费欠费货币欠费额日期日期/时间记录时间操作员文本10添加记录人员第3章 技术细节3.1Recordset数据对象Recordset对象是数据记录的集合,而数据记录有事字段的集合,因此利用Recordset对象,在程序中就可以存取所有数据记录的每一个字段的数据了,所以说Recordset对象是存取数据库数据
30、最重要的源头,在数据库的程序设计中,Recordset对象堪称为重要的对象。字段的集合构成数据记录,记录的集合构成数据表。在VB中与数据表对应的对象称为Recordset(数据记录集合)对象。利用Recordset对象,在程序中就可以存取所有数据记录的每一个字段的数据了。打开Recordset时,当前记录位于第一个记录(如果有),并且BOF和EOF属性被设置为False。如果没有记录,BOF和EOF属性设置是Ture。假设提供者支持相关的功能,可以使用MoveFirst、MoveLast、MoveNext和MovePrevious方法以及Move方法、AbsolutePosition、Abso
31、lutePage和Filter属性来重新确定当前记录的位置。仅向前Recordset对象只支持MoveNext方法。当使用Move方法访问每个记录(或枚举Recordset)时,可使用BOF和EOF属性查看是否移动已经超过了Recordset的开始或结尾。Recordset对象可支持两类更新:立即更新和批更新。使用立即更新,一旦调用Update方法,对数据的所有更改将被立即写入基本数据源。也可以使用AddNew和Update方法将值的数组作为参数传递,同时更新记录的若干字段。如果提供者支持批更新,可以使提供者将多个记录的更改存入缓存,然后使用UpdateBatch方法在单个调用中将他们传送给数
32、据库。这种情况应用于使用AddNew、Update和Delete方法所做的更改。调用UpdateBatch方法后,可以使用Status属性检查任何数据冲突并加以解决。3.2Addnew方法创建可更新Recordset对象的新记录。基本语法为Recordset.AddNew FieldList, Values其中,参数FieldList可选,表示新记录中字段的单个名称、一组名称或序号位置。Values可选,表示新记录中字段的单个或一组值。如果Fields是数组,那么Values也必须是有相同成员数的数组,否则将发生错误。字段名称的次序必须与每个数组中的字段值的次序相匹配。通过adAddNew使用
33、Supports方法可验证是否能够将记录添加到当前的Recordset对象。在调用Recordset方法后,新记录将成为当前记录,并在调用Update方法后继续保持当前记录。如果Recordset对象不支持书签,当移动到其他记录时将无法对新记录进行访问。是否需要调用Requery方法访问新记录则取决于所使用的游标类型。Addnew方法的行为取决于Recordset对象的更新模式以及是否传送Fields和Values参数。在立即更新模式(调用Update方法时提供者会立即将更改写入基本数据源)下,调用不带参数的AddNew方法可将EditMode属性设置为adEditAdd。提供者将任何字段值的
34、更改缓存在本地。调用Update方法可将新的记录传递到数据库并将EditMode属性重置为adEditNone。如果传送了Fields和Values参数,则立即将新记录传递到数据库(无须调用Update),且EditMode属性值没有改变(adEditNone)。在批更新模式(提供者缓存多个更改并只在调用UpdateBatch时将其写入基本数据源)下,调用不带参数的AddNew方法可将EditMode属性设置为adEditAdd。提供者将任何字段值的更改缓存在本地。调用Update方法可将新的记录添加到当前记录集并将EditMode属性重置为adEditNone,但在调用UpdateBatch
35、方法之前提供者不将更改传递到基本数据库。如果传送了Fields和Values参数,则将新记录发送给提供者以便缓存;需要调用UpdateBatch方法将新记录传递到基本数据库。如果Unique Table动态属性被设置,并且Recordset是对多个表执行JOIN操作的结果,那么,AddNew方法只能将字段插入到由Unique Table属性所命名的表中。3.3Delete方法Delete方法删除当前记录或记录组。语法为recordset.Delete AffectRecords参数AffectRecords确定Delete方法所影响的记录数目,该值可以是表常量之一。表AffectRecords
36、取值常量说明AdAffectCurrent默认。仅删除当前记录AdAffectGroup删除满足当前Filter属性设置的记录。要使用该选项,必须将Filter属性设置为有效的预定义常量之一AdAffectAll删除所有记录AdAffectAllChapters删除所有子集记录使用Delete方法可将Recordset对象中的当前记录标记为删除。如果Recordset对象不允许删除记录将引发错误。使用立即更新模式将在数据库中进行立即删除,否则记录将标记为从缓存删除,实际的删除将在调用UpdateBatch方法时进行。(使用Filter属性可查看已删除的记录)。从已删除的记录中检索字段值将引发错
37、误。删除当前记录后,在移动到其他记录之前已删除的记录将保存为当前记录。一旦离开已删除记录,则无法再次访问它。如果在事务中嵌套删除,可用RollbackTrans方法恢复已删除的记录。如果处于批更新模式,则可用CancelBatch方法取消一个或一组挂起删除。如果因与基本数据冲突而导致删除记录失败(如记录已被其他用户删除),则提供者向Errors集合返回警告但不终止程序执行,只有在所有提出请求的记录上发生冲突时才会产生运行时错误。如果UniqueTable动态属性被设置,并且Recordset是对多个表执行JOIN操作的结果,那么,Delete方法将仅删除UniqueTable属性所命名的表中的
38、行。3.4Move移动记录移动3.4Recordset对象中的当前记录的位置。recordset.Move NumRecords,Start其中,参数NumRecords为带符号长整形表达式,指定当前记录位置移动的记录数。Start可选,字符串或变体形,用于计算书签,也可为表列出的BookmarkEnum值之一。常量说明AdBookmarkCurrent默认。从当前记录开始AdBookmarkFirst从首记录开始AdBookmarkLast从尾记录开始所有Recordset对象都支持Move方法。如果NumRecords参数大于零,则当前记录位置将向前移动(向记录集的末尾)。如果NumRec
39、ords小于零,则当前记录位置向后移动(向记录集的开始)。如果Move调用将当前记录位置移动到首记录之前,则当前记录放置在记录集(BOF为True)的首记录之前。在BOF属性已经为True时试图向后移动将产生错误。如果Move调用将当前记录位置移动到尾记录之后,则当前记录放置在记录集(EOF为True)的尾记录之后。在EOF属性已经为True时试图向前移动将产生错误。从空的Recordset对象调用Move方法将产生错误。如果传送Start参数,则移动相对于该书签的记录(假定Recordset对象支持书签)。如果没有指定,则移动相对于当前记录。如果使用CaheSize属性在本地缓存来自提供者的
40、记录,则在传送将当前记录位置移动到当前缓存的记录组之外的NumRecords参数时,从目标记录开始检索新的记录组。CaheSize属性决定新检索记录组的大小,而且标记录是检索到的第一个记录。如果Recordset对象是仅向前的,则用户仍然可以传送小于零的NumRecords参数(只要目标在已缓存记录的当前集合中)。如果Move调用将当前记录位置移动到第一个已缓存记录的前一个记录,将产生错误。因此可使用记录缓存,他在支持仅向前滚动的提供者上支持完全滚动。由于缓存的记录将加载到内存,因此应避免不必要地缓存过多记录。即使仅向前Recordset对象支持这种方式的向后移动,在任何仅向前的Records
41、et对象上调用MovePrevious方法将产生错误。3.5MoveFirst、MoveLast、MoveNext和MovePrevious方法在指定Recordset对象中移动到第一个、最后一个、下一个或前一个记录并使该记录成为当前记录。语法:recordset.MoveFirst | moveLast | MoveNext | Moveprevious说明如下:使用MoveFirst方法将当前记录位置移到Recordse中的第一个记录。使用moveLast方法将当前记录位置移动到Recordse中的最后一个记录。Recordset对象必须支持书签或向后光标移动;否则调用该方法将产生错误。使
42、用MoveNext方法将当前记录向前移动一个记录(向Recordset的底部)。如果最后一个记录是当前记录并且调用MoveNext方法,则将当前记录设置到Recordset(EOF为True)的尾记录之后。当EOF属性已经为True时试图向前移动将产生错误。使用Moveprevious方法将当前记录位置向后移动一个记录(向记录集的顶部)。Recordset对象必须支持书签或向后游标移动;否则方法调用将产生错误。如果首记录是当前记录并且调用Moveprevious方法,则将当前记录设置在Recordset(BOF为True)的首记录之前。而BOF属性为True时向后移动将产生错误。如果Recor
43、dset对象不支持书签或向后游标移动,则Moveprevious方法将产生错误。如果记录集是仅向前的,但是用户希望支持向前或向后滚动,则可以使用CacheSize属性创建记录缓存,通过Move方法支持向后游标移动。由于缓存记录是加载到内存中的,所以应避免不必要地缓存太多记录。可以调用仅向前Recordset对象的MoveFirst方法;这样做可使提供者重新执行生成的Recordset对象的命令。3.6Save方法,保存记录Save方法将Recordset保存(持久)在文件中。recordset.Save FileName, PersistFormat参数FileName可选,代表文件的完整路径
44、名,用于保存Recordset。PersistFormat可选,用于指定保存Recordset所使用的格式。也可以是表中的某个常量。常量说明adPersistADTG(默认)使用专用的“Advanced Data Tablegram”格式保存adPersistXML使用XML格式保存。只能对打开的Recordset调用Save方法。随后使用Open方法可由FileName恢复Recordset。如果Filter属性影响Recordset,将只保存经过筛选的行。如果Recordset是分级结构的,那么将保存当前子Recordset和他的子Recordset,但不保存上一级Recordset。在第
45、一次保存Recordset时指定FileName。如果随后调用Save,应忽略FileName,否则将产生运行时错误。如果随后使用新的FileName调用Save,那么Recordset将保存到新的文件中,但新文件和原始文件都是打开的。Save不关闭Recordset或FileName,从而可以继续使用Recordset并保存最新的更改。在Recordset关闭之前FileName将保持打开,在这段时间其他应用程序可以读取但不能写入FileName。处于安全的原因,对由Microsoft Internet Explorer执行的脚本,Save方法仅允许使用低的和自定义的安全设置如果正在进行异步Recordset获取、执行或更新操作时调用Save方法,则Save将进入等待状态,直到异步操作完成。在Save方法完成后,当前行位置将成为Recordset的首行。要得到最佳结果,应使用Save将CursorLocation属性设置为adUseClient。如果提供者不支持用于保存Recordset对象的所需功能,则客户端游标将提供该功能。3.7Update方法Update方法保存对Record