• 769.44 KB
  • 2022-04-22 13:37:36 发布

学生信息管理系统功能模块设计、数据库的设计和功能实现毕业论文.doc

  • 48页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'学生信息管理系统功能模块设计、数据库的设计和功能实现毕业论文目录1.1摘  要21.2前   言21.3开发学生信息管理系统相关问题21.3.1学生信息管理系统的简介21.4系统的实现以及相关问题21.4.1VisualBasic6.0总概括21.4.2实施环境与工具的比较选择31.4.3编程环境、工具、实现与数据准备概况31.4.4学校管理者对学生信息管理系统的需求31.5学生信息管理系统功能模块设计、数据库的设计和功能实现41.5.1学生信息管理系统的功能模块设计41.5.2数据库设计41.6学生信息管理系统的具体实现81.6.1学生信息管理系统主窗体的创建81.6.2系统用户管理模块111.6.3学籍管理模块的创建121.6.4班级管理模块的创建141.6.5课程设置模块的创建151.6.6成绩管理模块的创建171.6.7帮助模块的设计171.7系统测试概况171.7.1系统转换方案及实现概况171.7.2软硬件平台171.8结束语171.9致    谢171.10参考文献171.11附程序代码清单17 1.1摘  要   信息管理系统就是我们常说的MIS(ManagementInformationSystem),它是一个计算机软硬件资源以及数据库的人-机系统。它能提供信息支持企业或组织的运行、管理和决策功能。学生信息管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起资料一致性和完整性强、资料安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。   经过分析如此情况,我们使用Microsoft公司的VisualBasic6.0开发工具,由于它给我们提供了用于从数据库中访问数据的强大工具集,使用它可以建立开发比较完善的数据库操作应用程序,并利用SQLServer2000提供数据库。尤其是VisualBasic6.0可视化设计窗口这一方便而简洁的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成学校管理者满意的可行系统。关键词:原型法,面向对象,资料窗口,信息管理系统。 1.2前   言   学生信息管理系统是一个学校不可缺少的部分,它的内容对于学校管理者来说是至关重要,所以学生信息管理系统应该能够为学校管理者提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理学生档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间长了,将产生大量的文件和资料,这对于查找、更新和维护都带来了不少的困难。   随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。   作为计算机应用的一部分,使用计算机对学生档案进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高的效率,也是学校科学化、正规化管理的重要条件。因此,开发这样一套管理软件成为很有必要的事情,在下面的各章中我们将以开发一套学生信息管理系统为例,谈谈其开发过程和所涉及到的问题及解决方法。1.3开发学生信息管理系统相关问题1.3.1学生信息管理系统的简介学生信息管理系统是针对学校学生档案管理的大量工作而开发的管理软件,并以重庆市松桥中学作为本软件的开发背景。随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成信增加。面对庞大的信息量,就需要有学生信息管理系统来提高学生管理工作的效率。通过这样的系统,可能做到信息的规范管理、科学统计和快速的查询,从而减少管理方面的工作。系统开发的总体任务是实现学生信息关系的系统化、规范化和自动化。 1.1系统的实现以及相关问题1.1.1 VisualBasic6.0总概括   VisualBasic6.0是美国Microsoft公司推出的一个可视化程序开发软件。它是完全按照面向对象结构研制设计。采用图形化的应用开发环境。是面向对象开发工具的前端产品。它与其它的开发工具软作相比,有其自己独立的特点,其主要表现在:所见所得的界面设计;基于对象的设计方法;极短的软件开发周期;较易维护的生成代码。在有关数据库的应用中,VisualBasic6.0具有描述多个数据库连接与检索的功能,特别是VisualBasic6.0能提供ADO(ActiveDataObjects)作为应用程序和OLE-DB连接的桥梁。它能从大多数流行的数据库系统中提取资料,而且不管资料存放在什么地方。另外,各种应用程序也可以独立于数据库系统运行,因而VisualBasic6.0可以使用数据库更简单。   VisualBasic6.0正在成为面向对象开发工具的标准。它为应用开发提供了全面、综合性的支持,可以分别概括为如下几点:1.应用程序的事件驱动2.VisualBasic6.0语言与函数3.面向对象的编程4.与数据库的连接性1.1.2实施环境与工具的比较选择系统的实施是在系统设计的基础上,用VisualBasic6进行程序设计开发。VisualBasic6是新一代的程序语言,它提供了开发MicrosoftWindows(R)应用程序的最迅速、最简捷的方法。与系统管理系统常用的开发工具PowerBuilder相比,Visualbasic6主要有以下优势:1.支持ADO(ActiveX数据对象):这项新的数据访问技术的特性包括:更简单的对象模型;与其它Microsoft和非Microsoft的技术更好的集成;为本地和远程数据数据提供的通用接口;可远程访问的和断开的记录集;用户可访问的数据绑定接口;以及层次结构的记录集。2.完整的编程语言:同PowerBuilder只提供脚本不同,VisualBasic6提供了一套完整的编程结构和语言元素。丰富的数据类型也提高了程序的性能。2.用对象编程:VisualBasic6是一种基于对象的编程语言。VisualBasic6使得对象的使用变得很容易,它使在程序性编码和使用对象的程序设计之间进行平稳转换成为可能。1.1.3编程环境、工具、实现与数据准备概况本系统是在VisualBasic6自带的IDE下开发,数据库设计工具使用了SQLServer2000。所有开发工具都是在Windows2000操作系统使用,并考虑了系统程序在其他Windows版本操作系统下运行的要求。程序代码是以对象的观点来编写,整个系统所有的基本功能都封装在4个对象中,系统的功能实现都是通过调用这4个对象提供的接口实现。这样便提高了程序代码的模块化,有助于程序代码的调试及以后的功能扩展。 1.1.1学校管理者对学生信息管理系统的需求1.1.1.1总体功能需求   学生信息管理系统是针对学校管理的大量工作,用计算机进行全面现代化管理。主要包括成绩信息管理、课程信息管理、班级信息管理、学籍信息管理和系统管理等几个方面的功能,以实现学校管理者方便的输入、查询、修改和删除等工作需求。1.1.1.2具体系统功能需求描述◇有关学籍等信息的输入,包括学生基本信息、所在班级、所学课程和成绩表等。◇学生信息的查询,包括学生基本信息、所在班级、已学课程和成绩等。◇学生信息的修改。◇班级管理信息的输入,包括班级设置、年级信息等。◇班级管理信息的查询。◇班级管理信息的修改。◇学校基本课程信息的输入。◇基本课程信息的修改。◇学生课程的设置和修改。◇学生成绩信息的输入。◇学生成绩信息的修改。◇学生成绩信息的查询。◇学生成绩信息的统计。1.2学生信息管理系统功能模块设计、数据库的设计和功能实现1.2.1学生信息管理系统的功能模块设计通过对上述的各项系统功能进行集中、分块,按照程序设计的要求,得到如图2-1所示的系统功能模块图。1.2.2数据库设计数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,图2-1保证数据的完整和一致。同时,合理的数据库结构也将有利于程序的实现。 图2-11.1.1.1数据库需求分析用户的需求体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入。在仔细分析调查有关学生信息需要的基础上,将得到如图2-2本系统所处理的数据流程。图2-2针对一般学生信息管理系统的需求,通过对学生学习过程的内容和数据流程分析,设计如下所示的数据项和数据结构:◇学生基本信息:包括的数据项有:学生学号、学生姓名、性别、出生日期、班号、联系电话、入校日期、家庭住址、备注等。设计结果如下表:student_Info学生基本信息表列名数据类型可否为空说明student_IDInt(4)NOTNULL学生学号(主键) student_NameCHAR(10)NULL学生姓名student_GenderCHAR(2)NULL学生性别Born_DateDATETIME(8)NULL出生日期Class_NOINT(4)NULL班号Telt_NumberCHAR(10)NULL联系电话Ru_dateDATETIME(8)NULL入校日期AddressVARCHAR(50)NULL家庭住址CommentVARCHAR(200)NULL注释◇班级信息:包括的数据项有:班号、所在年级、班主任姓名、所在教室等。设计结果如下表:class_info班级信息表格列名数据类型可否为空说明Class_NOINT(4)NOTNULL班号(主键)GradeCHAR(10)NULL年级DirectorCHAR(10)NULL班主任Classroom_noCHAR(10)NULL教室◇课程基本信息:包括的数据项有:课程号、课程名称、课程类别、课程描述等。设计结果如下表:course_info课程基本信息表列名数据类型可否为空说明Course_NOINT(4)NOTNULL课程编号(主键)Course_nameCHAR(10)NULL课程名称Course_typeCHAR(10)NULL课程类型Course_desCHAR(10)NULL课程描述◇课程设置信息:包括的数据项有:年级信息、所学课程等。设计结果如下表:gradecourse_info课程设置表列名数据类型可否为空说明gradeCHAR(10)null年级Course_nameCHAR(10)null课程设置◇学生成绩信息:包括的数据项有:考试编号、所在班号、学生学号、学生姓名、所学课程、考试分数等。Result_info学生成绩信息表列名数据类型可否为空说明Exan_NOCHAR(10)NOTNULL考试编号Student_IDINT(4)NOTNULL学生学号Student_NameCHAR(10)NULL学生姓名Class_NOInt(4)NULL学生班号Course_NameCHAR(10)NULL课程名称resultFLOAT(8)NULL分数User_info系统用户表列名数据类型可否为空说明User_idCHAR(10)NOTNULL用户名称(主键)User_PWDCHAR(10)NULL用户密码User_desCHAR(10)NULL用户描述有了如上的数据结构、数据项和数据流程,我们就能进行数据库设计。 1.1.1.1数据库概念结构设计根据前面的设计规划出的实体有:学生实体、班级实体、年级实体、年级实体、课程实体。各个实体的具体描述E-R图如下:图2-3图2-4其中,图2-3为学生实体E-R图,图2-4为班级实体E-R图。图2-5图2-6 图2-5为课程实体E-R图,图2-6为年级实体E-R图。实体和实体之间的关系如图2-7所示。1.1.1.1数据库逻辑结构设计现在需要将上面的数据库概念结构转化为SQLServer2000数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。在上面的实体以及实体之间关系的基础上,形成数据库的表格以及各个表格之刘的关系。1.1.1.2数据库结构的实现经过需求分析和概念结构设计之后,得到数据库的逻辑结构。现在在SQLServer2000数据库系统中实现该逻辑结构,利用SQLServer2000数据库系统中的SQL查询分析器来实现。创建系统用户表格user_Info的SQL语句如下:CREATETABLE[dbo].[user_Info]([user_ID][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,[user_PWD][char](10)COLLATEChinese_PRC_CI_ASNULL,[user_Des][char](10)COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]1.2学生信息管理系统的具体实现        上面的的SQL语句在SQLServer2000中的查询分析器中执行后,将产生所需要的表格,下面将使用VisualBasic6.0来编写数据库系统的客户端程序。           1.2.1学生信息管理系统主窗体的创建在本系统开发中,我们使用MDI(即多文档界面),这样可以使程序更加的美观、整齐有序。学生信息管理系统的主窗体如图4-1所示。1.2.1.1创建公用模块在VisualBasic 中可以用公用模块来存放整个工程项目公用的函数、全局变量等。整个项目中的优任何地方都可以调用公用模块中的函数,这样就可以极大地提高代码的效率。由于系统中各个功能模块都将频繁使用数据库中的各种数据,因此需要一个公用的数据操作函数,用以执行各种SQL语句。添加函数ExecuteSQL,代码如下:PublicFunctionExecuteSQL(ByValSQL_AsString,MsgStringAsString)_AsADODB.Recordset"executesSQLandreturnsRecordsetDimcnnAsADODB.ConnectionDimrstAsADODB.Recordset图4-1程序主窗体DimsTokens()AsStringOnErrorGoToExecuteSQL_ErrorsTokens=Split(SQL)Setcnn=NewADODB.Connectioncnn.OpenConnectStringIfInStr("INSERT,DELETE,UPDATE",_UCase$(sTokens(0)))Thencnn.ExecuteSQLMsgString=sTokens(0)&_"querysuccessful"ElseSetrst=NewADODB.Recordsetrst.OpenTrim$(SQL),cnn,_adOpenKeyset,_adLockOptimistic"rst.MoveLast"getRecordCountSetExecuteSQL=rstMsgString="查询到"&rst.RecordCount&_"条记录"EndIfExecuteSQL_Exit:Setrst=NothingSetcnn=NothingExitFunctionExecuteSQL_Error:MsgString="查询错误:"&_Err.Description ResumeExecuteSQL_ExitEndFunctionExecuteSQL函数共有两个参数:SQL和MsgString。其中SQL用来存放需要执行的SQL语句,MsgString用来返回执行的提示信息。函数执行时,首先判断SQL语句中包含的内容:当执行查询操作时,MsgStringSQL函数将返回一个与函数同名的记录集对象(Recordset),所有满足条件的记录包含在对象中;当执行如删除、更新、添加等操作时,不返回记录对象。在MsgStringSQL函数中使用了ConnectString函数,这个函数用来连接数据库,代码如下:PublicFunctionConnectString()_AsString"returnsaDBConnectStringConnectString="FileDSN=studentinfo.dsn;UID=sa;PWD="EndFunction由于在后面的过程中,需要频繁检查各促文本框的内容是否为空,这里还需要定义Testtxt函数代码,代码如下:PublicFunctionTesttxt(txtAsString)AsBooleanIfTrim(txt)=""ThenTesttxt=FalseElseTesttxt=TrueEndIfEndFunction由于学生信息管理系统启动后,需要对用户进行判断。如果登陆者是授权用户,将进入系统,否则停止程序的执行。这个判断在系统运行的最初进行,因此代码应该放在公手模块中。代码如下:SubMain()DimfLoginAsNewfrmLoginfLogin.ShowvbModalIfNotfLogin.OKThen"LoginFailedsoexitappEndEndIfUnloadfLoginSetfMainForm=NewfrmMainfMainForm.ShowEndSub过程Main将在系统启动时首先执行,保证对用户的管理。系统需要知道登陆用户的信息,定义全局变量UserName。PublicUserNameAsString1.1.1系统用户管理模块系统用户管理模块主要实现:◇用户登陆◇添加用户◇修改用户密码 1.1.1.1用户登陆窗体的创建系统启动后,将首先出现如图6-2所示的用户登陆窗体,用户首先输入用户名,然后输入密码。如果连续3次输入密码不正确,将退出程序。图6-2用户登陆窗口中放置了两个文本框(TextBox),用来输入用户名和密码;两个按钮(CommanmdButton)用来确定和取消登陆;四个标签(Label)用来标示窗体的信息。并为之设置属性。1.1.1.2添加用户窗体的创建进入系统后,选择菜单”系统—添加用户”就可以添加用户,出现如图6-3所示的窗体。这个窗体中放置了3个文本框,用来输入用户和密码;两个按钮用来确定是否添加用户;3个标签用来标示文本框的提示。图6-3 1.1.1.1修改用户密码窗体的创建用户可以修改自己的密码,选择菜单“系统—修改密码”出现如图6-4所示的窗体。图6-41.1.2学籍管理模块的创建学籍管理模块主要实现如下功能:◇添加党籍信息◇修改学籍信息◇查询学籍信息1.1.2.1添加学籍信息窗体的创建选择“学籍管理—添加学籍信息”菜单,将出现图6-5所示的窗体。图6-5 1.1.1.1修改学籍信息窗体的创建选择“学籍管理--修改学籍信息”菜单,将出现如图6-6所示的窗体。本修改学籍窗口,不但能够修改学籍信息而且能够查看相关的学知信息。当窗口中出现某一学生的学籍信息后,可以点“上一条记录”、“下一条记录”、“第一条记录”和“最后一条记录”来分别查找相关记录。由于查找课程信息和班级信息等窗口中与此大致相同,以下不再累述。图6-61.1.1.2查询学籍信息窗口选择“学籍管理—查询学籍信息”菜单。将出现如图6-7所示的窗体,在这里可以按照各种组合方式进行查询。 图6-71.1.1班级管理模块的创建班级管理模块主要实现如下功能:◇添加班级信息◇修改班级信息1.1.1.1添加班级信息窗口模块进入系统后,选择“班级管理—添加班级信息”菜单,将出现如图6-8所示的窗体。图6-81.1.1.2修改班级信息窗体的创建进入系统后,选择“班级管理—修改班级信息”菜单,将出现如图6-9所示的窗体。图6-9 1.1.1课程设置模块的创建课程设置模块主要实现如下功能:◇添加课程信息◇修改课程信息◇设置年级课程1.1.1.1添加课程信息窗体的创建选择“课程设置—添加课程信息”菜单,将出现如图6-10所示的窗体。图6-101.1.1.2修改课程信息窗口的创建选择“课程设置—修改课程信息”菜单,将出现如图6-11所示的窗体。 图6-111.1.1.1设置年级课程表选择“课程设置—设置年级课程”,将出现如图6-12所示的窗体。图6-111.1.2成绩管理模块的创建成绩管理模块主要实现以下功能:◇添加成绩信息◇修改成绩信息 ◇查询成绩信息1.1.1.1添加成绩信息窗体的创建选择“成绩管理—添加成绩信息”菜单,将出现如图6-12所示的窗体。图6-121.1.1.2修改成绩信息窗体的创建选择“成绩管理—修改成绩信息”菜单。将出现如图6-13所示的窗体。图6-13 1.1.1.1查询成绩信息窗体选择“成绩管理—查询成绩信息”菜单。将出现如图6-14所示的窗体。图6-141.1.2帮助模块的设计一个良好的WINDOWS应用程序应该提供一个ABOUT窗口,基中包括系统的名称、所有权等。学生信息管理系统的ABOUT窗口如图6-15。图6-15 1.1系统测试概况鉴于本系统规模不是很大,因此系统的测试主要集中在4个封装基本功能的对象的代码测试和最后系统的总体测试。代码测试主要是测试对象提供的接口运行是否正常,测试运行结果是否与期望相同。以及对象的接口的容错性。总体测试主要是测试整个系统的运行正确性、可靠性和稳定性,其中正确性最主要。总体测试的内容包括使用本系统进行大量数据的录入,特别是边缘数据的录入测试。其次测试系统的查询和打印功能,测试其结果是否与预期相符。由于测试项目内容较多,无法在此一一罗列,故将几个在测试中发现的主要问题列出。1.系统开发过程中与数据库的连接情况出现问题由于一开始没有注意到数据库连接的相关问题,所以在刚开始开发的过程中,比如一输入用户名和密码的时候,就出现错误,这是由于在与数据库的连接中出现了问题。通过对代码的单步跟踪及有关文档,以及指导教师的指导,找到了错误的原因。经过调整某些参数以后,操作运行正常。2.ComboxBox的使用在程序许多对话框中都要用到改变一个ComboBox的选择项,其他的相关ComboBox的内容要进行相应的改变,如在学院的ComboBox中选定了某个年级,则相应的专业ComboBox的内容应变为这个学院的专业项。开始,这一更新相关ComboBox的代码是放在ComboBox的Change事件中,认为ComboBox的选择项的改变就出发此事件。但在运行过程中,相应ComboBox没有如预期随选择项的改变而改变。通过单步跟踪,发现此事件并没有因为选择项的改变而触发。后查阅文档,改用Click事件放更新代码,运行正常。1.1.1系统转换方案及实现概况本系统的实现比较方便,只要具备本系统运行的环境就可使用。系统安装只需使用提供的系统安装程序将系统安装到计算机上,如需多台计算机一起使用,只需要分别将系统装在相应的计算机上,然后指定使用一台计算机上的数据库,其他计算机在使用时需与此计算机联网,并在系统登录时选择指定计算机上的数据库文件即可。系统运行与维护概况平时应注意对使用系统的计算机的日常管理,特别是存放数据库文件的计算机。有条件的应该定期对数据库文件进行拷贝备份,防止因意外或人为因素导致数据库文件的破坏而造成数据丢失的损失,保证系统的正常运行。1.1.2软硬件平台客户机/服务器:采用PentiumII或以上级别PC机,至少30M硬盘,Pentium90MHZ,支持VGA或分辨率更高的显示器客户机/服务器操作系统:Window98/Me,也可使用WindowsNT作为操作系统数据库:SQLServer2000网络:以太网组成的局域网,可设多台客户机。 1.1结束语  经过三个多月的设计和开发,学生信息管理系统基本开发完毕。其功能基本符合学校管理者需求,能够完成成绩信息、课程信息、班级信息、学籍信息的输入、查询、修改和删除,以及各类相关报表的打印。    但是由于毕业设计时间较短,所以该系统还有许多不尽如人意的地方,比如联机文档比较少,学校管理者接口不够美观,出错处理不够等多方面问题。这些都有待进一步改善。1.2致    谢在本次毕业设计中,我从指导老师尚老师身上学到了很多东西。尚老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。他无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高,这对于我以后的工作和学习都有一种巨大的帮助,感谢他耐心的辅导。另外,在系统开发过程中,我的朋友APPLEZHOU给予我很大精神支持,让我渡过难关。也从技术上给予我不少帮助,这里一并表示感谢。 1.1参考文献[1]VisualBasic程序设计   陈明   中央广播电视大学出版社 2000年[2]SQLSever高级开发与专业运用[3]VisualBasic6.0数据库开发与专业运用敬铮国防工业出版社2002年 1.1附程序代码清单系统主窗体:PrivateSubaddcinfoMenu_Click()frmAddclassinfo.ShowEndSubPrivateSubaddcourseMenu_Click()frmAddcourseinfo.ShowEndSubPrivateSubaddresultMenu_Click()frmAddresult.ShowEndSubPrivateSubaddsinfoMenu_Click()frmAddsinfo.ShowEndSubPrivateSubadduserMenu_Click()frmAdduser.ShowsbStatusBar.Panels(1).Text="添加用户"EndSubPrivateSubexitMenu_Click()EndEndSubPrivateSubexitsinfoMenu_Click()UnloadfrminquireinfoEndSubPrivateSubgradecourseMenu_Click()frmSetcourseinfo.ShowEndSubPrivateSubinquireresultMenu_Click()frmInquireresult.ShowEndSubPrivateSubinquiresinfoMenu_Click()frmInquiresinfo.ShowEndSubPrivateSubMDIForm_Load()Me.Left=GetSetting(App.Title,"Settings","MainLeft",1000)Me.Top=GetSetting(App.Title,"Settings","MainTop",1000)Me.Width=GetSetting(App.Title,"Settings","MainWidth",6500)Me.Height=GetSetting(App.Title,"Settings","MainHeight",6500)EndSubPrivateSubMDIForm_Unload(CancelAsInteger)IfMe.WindowState<>vbMinimizedThenSaveSettingApp.Title,"Settings","MainLeft",Me.LeftSaveSettingApp.Title,"Settings","MainTop",Me.TopSaveSettingApp.Title,"Settings","MainWidth",Me.WidthSaveSettingApp.Title,"Settings","MainHeight",Me.HeightEndIfEndSubPrivateSubmodifycinfoMenu_Click()frmModifyclassinfo.ShowEndSubPrivateSubmodifycourseMenu_Click()frmModifycourseinfo.ShowEndSubPrivateSubmodifypwdMenu_Click()frmModifyuserinfo.ShowEndSubPrivateSubmodifyresultMenu_Click()frmModifyresult.ShowEndSubPrivateSubmodifysinfo_Menu_Click()frmModifysinfo.ShowEndSub 登陆窗口OptionExplicitPrivateDeclareFunctionGetUserNameLib"advapi32.dll"Alias"GetUserNameA"(ByVallpbufferAsString,nSizeAsLong)AsLongPublicOKAsBoolean"记录确定次数DimmiCountAsIntegerPrivateSubForm_Load()DimsBufferAsStringDimlSizeAsLongsBuffer=Space$(255)lSize=Len(sBuffer)CallGetUserName(sBuffer,lSize)IflSize>0ThentxtUserName.Text=""ElsetxtUserName.Text=vbNullStringEndIfOK=FalsemiCount=0EndSubPrivateSubcmdCancel_Click()OK=FalseMe.HideEndSubPrivateSubcmdOK_Click()DimtxtSQLAsStringDimmrcAsADODB.RecordsetDimMsgTextAsString"ToDo:createtestforcorrectpassword"checkforcorrectpasswordUserName=""IfTrim(txtUserName.Text="")ThenMsgBox"没有这个用户,请重新输入用户名!",vbOKOnly+vbExclamation,"警告"txtUserName.SetFocusElsetxtSQL="select*fromuser_Infowhereuser_ID="sa"&txtUserName.Text&"""Setmrc=ExecuteSQL(txtSQL,MsgText)Ifmrc.EOF=TrueThenMsgBox"没有这个用户,请重新输入用户名!",vbOKOnly+vbExclamation,"警告"txtUserName.SetFocusElseIfTrim(mrc.Fields(1))=Trim(txtPassword.Text)ThenOK=Truemrc.CloseMe.HideUserName=Trim(txtUserName.Text)ElseMsgBox"输入密码不正确,请重新输入!",vbOKOnly+vbExclamation,"警告"txtPassword.SetFocustxtPassword.Text=""EndIfEndIfEndIfmiCount=miCount+1IfmiCount=3ThenMe.HideEndIfExitSubEndSub设置年级课程信息窗口:OptionExplicitDimflagSetAsBooleanDimflagGradeAsBooleanPrivateSubcmdAdd_Click()IflistAllcourse.ListIndex<>-1ThenlistSelectcourse.AddItemlistAllcourse.List(listAllcourse.ListIndex)EndIfEndSub PrivateSubcmdDelete_Click()IflistSelectcourse.ListIndex<>-1ThenlistSelectcourse.RemoveItemlistSelectcourse.ListIndexEndIfEndSubPrivateSubcmdExit_Click()UnloadMeEndSubPrivateSubcmdModify_Click()DimiAsIntegerDimmrcAsADODB.RecordsetDimmrccAsADODB.RecordsetDimtxtSQLAsStringDimMsgTextAsStringDimmyBookmarkAsVariantIfNotTesttxt(comboGrade.Text)ThenMsgBox"请先选择年级!",vbOKOnly+vbExclamation,"警告"ExitSubEndIfIfNotTesttxt(listSelectcourse.List(0))ThenMsgBox"请选择课程!",vbOKOnly+vbExclamation,"警告"ExitSubEndIftxtSQL="select*fromgradecourse_Infowheregrade=""&Trim(comboGrade.Text)&"""Setmrc=ExecuteSQL(txtSQL,MsgText)Ifmrc.EOFThenFori=1TolistSelectcourse.ListCountmrc.AddNewmrc.Fields(0)=comboGrade.Textmrc.Fields(1)=listSelectcourse.List(i-1)mrc.UpdateNextimrc.CloseMsgBox"课程设置成功!",vbOKOnly+vbExclamation,"警告"Elsemrc.ClosetxtSQL="deletefromgradecourse_Infowheregrade=""&Trim(comboGrade.Text)&"""Setmrcc=ExecuteSQL(txtSQL,MsgText)txtSQL="select*fromgradecourse_Info"Setmrcc=ExecuteSQL(txtSQL,MsgText)Fori=1TolistSelectcourse.ListCountmrcc.AddNewmrcc.Fields(0)=comboGrade.Textmrcc.Fields(1)=listSelectcourse.List(i-1)mrcc.UpdateNextimrcc.CloseMsgBox"课程设置成功!",vbOKOnly+vbExclamation,"警告"EndIfEndSubPrivateSubcmdSet_Click()DimmrcAsADODB.RecordsetDimtxtSQLAsStringDimMsgTextAsStringlistAllcourse.Enabled=TruelistSelectcourse.Enabled=TruecmdModify.Enabled=TruetxtSQL="select*fromcourse_Info"Setmrc=ExecuteSQL(txtSQL,MsgText)While(mrc.EOF=False)listAllcourse.AddItemmrc.Fields(1)mrc.MoveNextWendmrc.Close flagSet=TrueEndSubPrivateSubcomboGrade_Click()DimmrcAsADODB.RecordsetDimtxtSQLAsStringDimMsgTextAsStringDimiAsIntegerlistSelectcourse.CleartxtSQL="select*fromgradecourse_Infowheregrade=""&comboGrade.Text&"""Setmrc=ExecuteSQL(txtSQL,MsgText)IfNotmrc.EOFThenFori=1Tomrc.RecordCountlistSelectcourse.AddItemmrc.Fields(1)mrc.MoveNextNextiEndIfmrc.CloseEndSubPrivateSubForm_Load()flagSet=FalseflagGrade=FalselistAllcourse.Enabled=FalselistSelectcourse.Enabled=FalsecmdModify.Enabled=FalsecomboGrade.AddItem"初中一年级"comboGrade.AddItem"初中二年级"comboGrade.AddItem"初中三年级"comboGrade.AddItem"高中一年级"comboGrade.AddItem"高中二年级"comboGrade.AddItem"高中三年级"EndSubPrivateSublistAllcourse_Click()IflistAllcourse.ListIndex<>-1ThenlistSelectcourse.ListIndex=-1EndIfEndSubPrivateSublistSelectcourse_Click()IflistSelectcourse.ListIndex<>-1ThenlistAllcourse.ListIndex=-1EndIfEndSub密码修改窗口:OptionExplicitDimflagSetAsBooleanDimflagGradeAsBooleanPrivateSubcmdAdd_Click()IflistAllcourse.ListIndex<>-1ThenlistSelectcourse.AddItemlistAllcourse.List(listAllcourse.ListIndex)EndIfEndSubPrivateSubcmdDelete_Click()IflistSelectcourse.ListIndex<>-1ThenlistSelectcourse.RemoveItemlistSelectcourse.ListIndexEndIfEndSubPrivateSubcmdExit_Click()UnloadMeEndSubPrivateSubcmdModify_Click()DimiAsIntegerDimmrcAsADODB.RecordsetDimmrccAsADODB.RecordsetDimtxtSQLAsStringDimMsgTextAsStringDimmyBookmarkAsVariantIfNotTesttxt(comboGrade.Text)ThenMsgBox"请先选择年级!",vbOKOnly+vbExclamation,"警告"ExitSubEndIfIfNotTesttxt(listSelectcourse.List(0))ThenMsgBox"请选择课程!",vbOKOnly+vbExclamation,"警告" ExitSubEndIftxtSQL="select*fromgradecourse_Infowheregrade=""&Trim(comboGrade.Text)&"""Setmrc=ExecuteSQL(txtSQL,MsgText)Ifmrc.EOFThenFori=1TolistSelectcourse.ListCountmrc.AddNewmrc.Fields(0)=comboGrade.Textmrc.Fields(1)=listSelectcourse.List(i-1)mrc.UpdateNextimrc.CloseMsgBox"课程设置成功!",vbOKOnly+vbExclamation,"警告"Elsemrc.ClosetxtSQL="deletefromgradecourse_Infowheregrade=""&Trim(comboGrade.Text)&"""Setmrcc=ExecuteSQL(txtSQL,MsgText)txtSQL="select*fromgradecourse_Info"Setmrcc=ExecuteSQL(txtSQL,MsgText)Fori=1TolistSelectcourse.ListCountmrcc.AddNewmrcc.Fields(0)=comboGrade.Textmrcc.Fields(1)=listSelectcourse.List(i-1)mrcc.UpdateNextimrcc.CloseMsgBox"课程设置成功!",vbOKOnly+vbExclamation,"警告"EndIfEndSubPrivateSubcmdSet_Click()DimmrcAsADODB.RecordsetDimtxtSQLAsStringDimMsgTextAsStringlistAllcourse.Enabled=TruelistSelectcourse.Enabled=TruecmdModify.Enabled=TruetxtSQL="select*fromcourse_Info"Setmrc=ExecuteSQL(txtSQL,MsgText)While(mrc.EOF=False)listAllcourse.AddItemmrc.Fields(1)mrc.MoveNextWendmrc.CloseflagSet=TrueEndSubPrivateSubcomboGrade_Click()DimmrcAsADODB.RecordsetDimtxtSQLAsStringDimMsgTextAsStringDimiAsIntegerlistSelectcourse.CleartxtSQL="select*fromgradecourse_Infowheregrade=""&comboGrade.Text&"""Setmrc=ExecuteSQL(txtSQL,MsgText)IfNotmrc.EOFThenFori=1Tomrc.RecordCountlistSelectcourse.AddItemmrc.Fields(1)mrc.MoveNextNextiEndIfmrc.CloseEndSubPrivateSubForm_Load()flagSet=FalseflagGrade=FalselistAllcourse.Enabled=FalselistSelectcourse.Enabled=FalsecmdModify.Enabled=False comboGrade.AddItem"初中一年级"comboGrade.AddItem"初中二年级"comboGrade.AddItem"初中三年级"comboGrade.AddItem"高中一年级"comboGrade.AddItem"高中二年级"comboGrade.AddItem"高中三年级"EndSubPrivateSublistAllcourse_Click()IflistAllcourse.ListIndex<>-1ThenlistSelectcourse.ListIndex=-1EndIfEndSubPrivateSublistSelectcourse_Click()IflistSelectcourse.ListIndex<>-1ThenlistAllcourse.ListIndex=-1EndIfEndSub修改深知窗口:DimmrcAsADODB.RecordsetDimmyBookmarkAsVariantDimmccleanAsBooleanPrivateSubeditCommand_Click()mcclean=FalseFrame2.Enabled=FalsefirstCommand.Enabled=FalsepreviousCommand.Enabled=FalsenextCommand.Enabled=FalselastCommand.Enabled=FalsetxtSID.Enabled=TruetxtName.Enabled=TruecomboSex.Enabled=TruetxtBorndate.Enabled=TruecomboClassNo.Enabled=TruetxtRudate.Enabled=TruetxtTel.Enabled=TruetxtAddress.Enabled=TruetxtComment.Enabled=TruemyBookmark=mrc.BookmarkEndSubPrivateSubcancelCommand_Click()IfNotmccleanThenFrame2.Enabled=TruefirstCommand.Enabled=TruepreviousCommand.Enabled=TruenextCommand.Enabled=TruelastCommand.Enabled=TruetxtSID.Enabled=FalsetxtName.Enabled=FalsecomboSex.Enabled=FalsetxtBorndate.Enabled=FalsecomboClassNo.Enabled=FalsetxtRudate.Enabled=FalsetxtTel.Enabled=FalsetxtAddress.Enabled=FalsetxtComment.Enabled=Falsemrc.Bookmark=myBookmarkCallviewDataElseMsgBox"什么都没有修改,有什么好取消的!",vbOKOnly+vbExclamation,"警告"EndIfEndSubPrivateSubdeleteCommand_Click()myBookmark=mrc.Bookmarkstr2$=MsgBox("是否删除当前记录?",vbOKCancel,"删除当前记录")Ifstr2$=vbOKThenmrc.MoveNextIfmrc.EOFThenmrc.MoveFirstmyBookmark=mrc.Bookmarkmrc.MoveLastmrc.Deletemrc.Bookmark=myBookmarkCallviewDataElsemyBookmark=mrc.Bookmarkmrc.MovePreviousmrc.Deletemrc.Bookmark=myBookmarkCallviewDataEndIf Elsemrc.Bookmark=myBookmarkCallviewDataEndIfEndSubPrivateSubfirstCommand_Click()mrc.MoveFirstCallviewDataEndSubPrivateSubForm_Load()DimtxtSQLAsStringDimMsgTextAsStringtxtSQL="select*fromstudent_Info"Setmrc=ExecuteSQL(txtSQL,MsgText)mrc.MoveFirstCallviewDatamcbookmark=mrc.Bookmarkmcclean=TrueEndSubPublicSubviewData()txtSID.Text=mrc.Fields(0)txtName.Text=mrc.Fields(1)comboSex.Text=mrc.Fields(2)txtBorndate.Text=Format(mrc.Fields(3),"yyyy-mm-dd")comboClassNo.Text=mrc.Fields(4)txtTel.Text=mrc.Fields(5)txtRudate.Text=Format(mrc.Fields(6),"yyyy-mm-dd")txtAddress.Text=mrc.Fields(7)txtComment.Text=mrc.Fields(8)EndSubPrivateSublastCommand_Click()mrc.MoveLastCallviewDataEndSubPrivateSubnextCommand_Click()mrc.MoveNextIfmrc.EOFThenmrc.MoveFirstEndIfCallviewDataEndSubPrivateSubpreviousCommand_Click()mrc.MovePreviousIfmrc.BOFThenmrc.MoveLastEndIfCallviewDataEndSubPrivateSubupdateCommand_Click()DimtxtSQLAsStringDimMsgTextAsStringDimmrccAsADODB.RecordsetIfmccleanThenMsgBox"请先修改学籍信息",vbOKOnly+vbExclamation,"警告"ExitSubEndIfIfNotTesttxt(txtSID.Text)ThenMsgBox"请输入学号!",vbOKOnly+vbExclamation,"警告"txtSID.SetFocusExitSubEndIfIfNotTesttxt(txtName.Text)ThenMsgBox"请输入姓名!",vbOKOnly+vbExclamation,"警告"txtName.SetFocusExitSubEndIfIfNotTesttxt(comboSex.Text)ThenMsgBox"请选择性别!",vbOKOnly+vbExclamation,"警告"comboSex.SetFocusExitSub EndIfIfNotTesttxt(txtBorndate.Text)ThenMsgBox"请输入出生日期!",vbOKOnly+vbExclamation,"警告"txtBorndate.SetFocusExitSubEndIfIfNotTesttxt(comboClassNo.Text)ThenMsgBox"请选择班号!",vbOKOnly+vbExclamation,"警告"comboClassNo.SetFocusExitSubEndIfIfNotTesttxt(txtTel.Text)ThenMsgBox"请输入联系电话!",vbOKOnly+vbExclamation,"警告"txtTel.SetFocusExitSubEndIfIfNotTesttxt(txtRudate.Text)ThenMsgBox"请输入入校日期!",vbOKOnly+vbExclamation,"警告"txtRudate.SetFocusExitSubEndIfIfNotTesttxt(txtAddress.Text)ThenMsgBox"请输入家庭住址!",vbOKOnly+vbExclamation,"警告"txtAddress.SetFocusExitSubEndIfIfNotIsNumeric(Trim(txtSID.Text))ThenMsgBox"学号请输入数字!",vbOKOnly+vbExclamation,"警告"txtSID.SetFocusExitSubEndIfmrc.DeletetxtSQL="select*fromstudent_Infowherestudent_ID=""&Trim(txtSID.Text)&"""Setmrcc=ExecuteSQL(txtSQL,MsgText)Ifmrcc.EOF=FalseThenMsgBox"学号重复,请重新输入!",vbOKOnly+vbExclamation,"警告"mrcc.ClosetxtSID.SetFocusElsemrcc.CloseIfNotIsDate(txtBorndate.Text)ThenMsgBox"出生时间应输入日期格式(yyyy-mm-dd)!",vbOKOnly+vbExclamation,"警告"txtBorndate.SetFocusElsetxtBorndate=Format(txtBorndate,"yyyy-mm-dd")IfNotIsDate(txtRudate.Text)ThenMsgBox"入校时间应输入日期格式(yyyy-mm-dd)!",vbOKOnly+vbExclamation,"警告"txtRudate.SetFocusElsetxtRudate=Format(txtRudate,"yyyy-mm-dd")mrc.AddNewmrc.Fields(0)=Trim(txtSID.Text)mrc.Fields(1)=Trim(txtName.Text)mrc.Fields(2)=Trim(comboSex.Text)mrc.Fields(3)=Trim(txtBorndate.Text)mrc.Fields(4)=Trim(comboClassNo.Text)mrc.Fields(5)=Trim(txtTel.Text)mrc.Fields(6)=Trim(txtRudate.Text)mrc.Fields(7)=Trim(txtAddress.Text)mrc.Fields(8)=Trim(txtComment.Text)mrc.UpdateMsgBox"修改学籍信息成功!",vbOKOnly+vbExclamation,"修改学籍信息" mrc.Bookmark=myBookmarkCallviewDataFrame2.Enabled=TruefirstCommand.Enabled=TruepreviousCommand.Enabled=TruenextCommand.Enabled=TruelastCommand.Enabled=TruetxtSID.Enabled=FalsetxtName.Enabled=FalsecomboSex.Enabled=FalsetxtBorndate.Enabled=FalsecomboClassNo.Enabled=FalsetxtRudate.Enabled=FalsetxtTel.Enabled=FalsetxtAddress.Enabled=FalsetxtComment.Enabled=Falsemcclean=TrueEndIfEndIfEndIfEndSub修改成绩信息窗口:DimmrcAsADODB.RecordsetDimmyBookmarkAsVariantDimmccleanAsBooleanPrivateSubeditCommand_Click()mcclean=FalseFrame2.Enabled=FalsefirstCommand.Enabled=FalsepreviousCommand.Enabled=FalsenextCommand.Enabled=FalselastCommand.Enabled=FalsetxtSID.Enabled=TruetxtName.Enabled=TruecomboSex.Enabled=TruetxtBorndate.Enabled=TruecomboClassNo.Enabled=TruetxtRudate.Enabled=TruetxtTel.Enabled=TruetxtAddress.Enabled=TruetxtComment.Enabled=TruemyBookmark=mrc.BookmarkEndSubPrivateSubcancelCommand_Click()IfNotmccleanThenFrame2.Enabled=TruefirstCommand.Enabled=TruepreviousCommand.Enabled=TruenextCommand.Enabled=TruelastCommand.Enabled=TruetxtSID.Enabled=FalsetxtName.Enabled=FalsecomboSex.Enabled=FalsetxtBorndate.Enabled=FalsecomboClassNo.Enabled=FalsetxtRudate.Enabled=FalsetxtTel.Enabled=FalsetxtAddress.Enabled=FalsetxtComment.Enabled=Falsemrc.Bookmark=myBookmarkCallviewDataElseMsgBox"什么都没有修改,有什么好取消的!",vbOKOnly+vbExclamation,"警告"EndIfEndSubPrivateSubdeleteCommand_Click()myBookmark=mrc.Bookmarkstr2$=MsgBox("是否删除当前记录?",vbOKCancel,"删除当前记录")Ifstr2$=vbOKThenmrc.MoveNextIfmrc.EOFThenmrc.MoveFirstmyBookmark=mrc.Bookmarkmrc.MoveLastmrc.Deletemrc.Bookmark=myBookmarkCallviewData ElsemyBookmark=mrc.Bookmarkmrc.MovePreviousmrc.Deletemrc.Bookmark=myBookmarkCallviewDataEndIfElsemrc.Bookmark=myBookmarkCallviewDataEndIfEndSubPrivateSubfirstCommand_Click()mrc.MoveFirstCallviewDataEndSubPrivateSubForm_Load()DimtxtSQLAsStringDimMsgTextAsStringtxtSQL="select*fromstudent_Info"Setmrc=ExecuteSQL(txtSQL,MsgText)mrc.MoveFirstCallviewDatamcbookmark=mrc.Bookmarkmcclean=TrueEndSubPublicSubviewData()txtSID.Text=mrc.Fields(0)txtName.Text=mrc.Fields(1)comboSex.Text=mrc.Fields(2)txtBorndate.Text=Format(mrc.Fields(3),"yyyy-mm-dd")comboClassNo.Text=mrc.Fields(4)txtTel.Text=mrc.Fields(5)txtRudate.Text=Format(mrc.Fields(6),"yyyy-mm-dd")txtAddress.Text=mrc.Fields(7)txtComment.Text=mrc.Fields(8)EndSubPrivateSublastCommand_Click()mrc.MoveLastCallviewDataEndSubPrivateSubnextCommand_Click()mrc.MoveNextIfmrc.EOFThenmrc.MoveFirstEndIfCallviewDataEndSubPrivateSubpreviousCommand_Click()mrc.MovePreviousIfmrc.BOFThenmrc.MoveLastEndIfCallviewDataEndSubPrivateSubupdateCommand_Click()DimtxtSQLAsStringDimMsgTextAsStringDimmrccAsADODB.RecordsetIfmccleanThenMsgBox"请先修改学籍信息",vbOKOnly+vbExclamation,"警告"ExitSubEndIfIfNotTesttxt(txtSID.Text)ThenMsgBox"请输入学号!",vbOKOnly+vbExclamation,"警告"txtSID.SetFocusExitSubEndIfIfNotTesttxt(txtName.Text)ThenMsgBox"请输入姓名!",vbOKOnly+vbExclamation,"警告"txtName.SetFocusExitSub EndIfIfNotTesttxt(comboSex.Text)ThenMsgBox"请选择性别!",vbOKOnly+vbExclamation,"警告"comboSex.SetFocusExitSubEndIfIfNotTesttxt(txtBorndate.Text)ThenMsgBox"请输入出生日期!",vbOKOnly+vbExclamation,"警告"txtBorndate.SetFocusExitSubEndIfIfNotTesttxt(comboClassNo.Text)ThenMsgBox"请选择班号!",vbOKOnly+vbExclamation,"警告"comboClassNo.SetFocusExitSubEndIfIfNotTesttxt(txtTel.Text)ThenMsgBox"请输入联系电话!",vbOKOnly+vbExclamation,"警告"txtTel.SetFocusExitSubEndIfIfNotTesttxt(txtRudate.Text)ThenMsgBox"请输入入校日期!",vbOKOnly+vbExclamation,"警告"txtRudate.SetFocusExitSubEndIfIfNotTesttxt(txtAddress.Text)ThenMsgBox"请输入家庭住址!",vbOKOnly+vbExclamation,"警告"txtAddress.SetFocusExitSubEndIfIfNotIsNumeric(Trim(txtSID.Text))ThenMsgBox"学号请输入数字!",vbOKOnly+vbExclamation,"警告"txtSID.SetFocusExitSubEndIfmrc.DeletetxtSQL="select*fromstudent_Infowherestudent_ID=""&Trim(txtSID.Text)&"""Setmrcc=ExecuteSQL(txtSQL,MsgText)Ifmrcc.EOF=FalseThenMsgBox"学号重复,请重新输入!",vbOKOnly+vbExclamation,"警告"mrcc.ClosetxtSID.SetFocusElsemrcc.CloseIfNotIsDate(txtBorndate.Text)ThenMsgBox"出生时间应输入日期格式(yyyy-mm-dd)!",vbOKOnly+vbExclamation,"警告"txtBorndate.SetFocusElsetxtBorndate=Format(txtBorndate,"yyyy-mm-dd")IfNotIsDate(txtRudate.Text)ThenMsgBox"入校时间应输入日期格式(yyyy-mm-dd)!",vbOKOnly+vbExclamation,"警告"txtRudate.SetFocusElsetxtRudate=Format(txtRudate,"yyyy-mm-dd")mrc.AddNewmrc.Fields(0)=Trim(txtSID.Text)mrc.Fields(1)=Trim(txtName.Text)mrc.Fields(2)=Trim(comboSex.Text)mrc.Fields(3)=Trim(txtBorndate.Text)mrc.Fields(4)=Trim(comboClassNo.Text)mrc.Fields(5)=Trim(txtTel.Text)mrc.Fields(6)=Trim(txtRudate.Text) mrc.Fields(7)=Trim(txtAddress.Text)mrc.Fields(8)=Trim(txtComment.Text)mrc.UpdateMsgBox"修改学籍信息成功!",vbOKOnly+vbExclamation,"修改学籍信息"mrc.Bookmark=myBookmarkCallviewDataFrame2.Enabled=TruefirstCommand.Enabled=TruepreviousCommand.Enabled=TruenextCommand.Enabled=TruelastCommand.Enabled=TruetxtSID.Enabled=FalsetxtName.Enabled=FalsecomboSex.Enabled=FalsetxtBorndate.Enabled=FalsecomboClassNo.Enabled=FalsetxtRudate.Enabled=FalsetxtTel.Enabled=FalsetxtAddress.Enabled=FalsetxtComment.Enabled=Falsemcclean=TrueEndIfEndIfEndIfEndSub修改课程信息窗口:DimmrcAsADODB.RecordsetDimmyBookmarkAsVariantDimmccleanAsBooleanPrivateSubcancelCommand_Click()IfNotmccleanThenFrame2.Enabled=TruefirstCommand.Enabled=TruepreviousCommand.Enabled=TruenextCommand.Enabled=TruelastCommand.Enabled=TruetxtCourseno.Enabled=FalsetxtCoursename.Enabled=FalsecomboCoursetype.Enabled=FalsetxtCoursedes.Enabled=Falsemrc.Bookmark=myBookmarkCallviewDataElseMsgBox"什么都没有修改,有什么好取消的!",vbOKOnly+vbExclamation,"警告"EndIfEndSubPrivateSubdeleteCommand_Click()myBookmark=mrc.Bookmarkstr2$=MsgBox("是否删除当前记录?",vbOKCancel,"删除当前记录")Ifstr2$=vbOKThenmrc.MoveNextIfmrc.EOFThenmrc.MoveFirstmyBookmark=mrc.Bookmarkmrc.MoveLastmrc.Deletemrc.Bookmark=myBookmarkCallviewDataElsemyBookmark=mrc.Bookmarkmrc.MovePreviousmrc.Deletemrc.Bookmark=myBookmarkCallviewDataEndIfElsemrc.Bookmark=myBookmarkCallviewDataEndIfEndSubPrivateSubeditCommand_Click()mcclean=FalseFrame2.Enabled=FalsefirstCommand.Enabled=FalsepreviousCommand.Enabled=FalsenextCommand.Enabled=False lastCommand.Enabled=FalsetxtCourseno.Enabled=TruetxtCoursename.Enabled=TruecomboCoursetype.Enabled=TruetxtCoursedes.Enabled=TruecomboCoursetype.AddItem"必修"comboCoursetype.AddItem"考查"myBookmark=mrc.BookmarkEndSubPrivateSubfirstCommand_Click()mrc.MoveFirstCallviewDataEndSubPrivateSubForm_Load()DimtxtSQLAsStringDimMsgTextAsStringtxtCourseno.Enabled=FalsetxtCoursename.Enabled=FalsecomboCoursetype.Enabled=FalsetxtCoursedes.Enabled=FalsetxtSQL="select*fromcourse_Info"Setmrc=ExecuteSQL(txtSQL,MsgText)mrc.MoveFirstCallviewDatamyBookmark=mrc.Bookmarkmcclean=TrueEndSubPublicSubviewData()txtCourseno.Text=mrc.Fields(0)txtCoursename.Text=mrc.Fields(1)comboCoursetype.Text=mrc.Fields(2)txtCoursedes.Text=mrc.Fields(3)EndSubPrivateSublastCommand_Click()mrc.MoveLastCallviewDataEndSubPrivateSubnextCommand_Click()mrc.MoveNextIfmrc.EOFThenmrc.MoveFirstEndIfCallviewDataEndSubPrivateSubpreviousCommand_Click()mrc.MovePreviousIfmrc.BOFThenmrc.MoveLastEndIfCallviewDataEndSubPrivateSubupdateCommand_Click()DimtxtSQLAsStringDimMsgTextAsStringDimmrccAsADODB.RecordsetIfmccleanThenMsgBox"请先修改课程信息",vbOKOnly+vbExclamation,"警告"ExitSubEndIfIfNotTesttxt(txtCourseno.Text)ThenMsgBox"请输入课程编号!",vbOKOnly+vbExclamation,"警告"txtCourseno.SetFocusExitSubEndIfIfNotIsNumeric(Trim(txtCourseno.Text))ThenMsgBox"课程编号请输入数字!",vbOKOnly+vbExclamation,"警告"txtCourseno.SetFocusExitSubEndIfIfNotTesttxt(txtCoursename.Text)ThenMsgBox"请输入课程名称!",vbOKOnly+vbExclamation,"警告"txtCoursename.SetFocusExitSub EndIfIfNotTesttxt(comboCoursetype.Text)ThenMsgBox"请选择课程类型!",vbOKOnly+vbExclamation,"警告"comboCoursetype.SetFocusExitSubEndIfIfNotTesttxt(txtCoursedes.Text)ThenMsgBox"请输入课程描述信息!",vbOKOnly+vbExclamation,"警告"txtCoursedes.SetFocusExitSubEndIfmrc.DeletetxtSQL="select*fromcourse_Infowherecourse_No=""&Trim(txtCourseno.Text)&"""Setmrcc=ExecuteSQL(txtSQL,MsgText)Ifmrcc.EOF=FalseThenMsgBox"课程编号重复,请重新输入!",vbOKOnly+vbExclamation,"警告"mrcc.ClosetxtCourseno.SetFocusElsemrcc.Closemrc.AddNewmrc.Fields(0)=Trim(txtCourseno.Text)mrc.Fields(1)=Trim(txtCoursename.Text)mrc.Fields(2)=Trim(comboCoursetype.Text)mrc.Fields(3)=Trim(txtCoursedes.Text)mrc.UpdateMsgBox"修改课程信息成功!",vbOKOnly+vbExclamation,"警告"mrc.Bookmark=myBookmarkCallviewDataFrame2.Enabled=TruefirstCommand.Enabled=TruepreviousCommand.Enabled=TruenextCommand.Enabled=TruelastCommand.Enabled=TruetxtCourseno.Enabled=FalsetxtCoursename.Enabled=FalsecomboCoursetype.Enabled=FalsetxtCoursedes.Enabled=Falsemcclean=TrueEndIfEndSub修改班级信息窗口:DimmrcAsADODB.RecordsetDimmyBookmarkAsVariantDimmccleanAsBooleanPrivateSubcancelCommand_Click()IfNotmccleanThenFrame2.Enabled=TruefirstCommand.Enabled=TruepreviousCommand.Enabled=TruenextCommand.Enabled=TruelastCommand.Enabled=TruetxtClassno.Enabled=FalsecomboGrade.Enabled=FalsetxtDirector.Enabled=FalsetxtClassroom.Enabled=Falsemrc.Bookmark=myBookmarkCallviewDataElseMsgBox"什么都没有修改,有什么好取消的!",vbOKOnly+vbExclamation,"警告"EndIfEndSubPrivateSubdeleteCommand_Click()myBookmark=mrc.Bookmarkstr2$=MsgBox("是否删除当前记录?",vbOKCancel,"删除当前记录")Ifstr2$=vbOKThenmrc.MoveNextIfmrc.EOFThenmrc.MoveFirstmyBookmark=mrc.Bookmarkmrc.MoveLastmrc.Delete mrc.Bookmark=myBookmarkCallviewDataElsemyBookmark=mrc.Bookmarkmrc.MovePreviousmrc.Deletemrc.Bookmark=myBookmarkCallviewDataEndIfElsemrc.Bookmark=myBookmarkCallviewDataEndIfEndSubPrivateSubeditCommand_Click()mcclean=FalseFrame2.Enabled=FalsefirstCommand.Enabled=FalsepreviousCommand.Enabled=FalsenextCommand.Enabled=FalselastCommand.Enabled=FalsetxtClassno.Enabled=TruecomboGrade.Enabled=TruetxtDirector.Enabled=TruetxtClassroom.Enabled=TruecomboGrade.AddItem"初中一年级"comboGrade.AddItem"初中二年级"comboGrade.AddItem"初中三年级"comboGrade.AddItem"高中一年级"comboGrade.AddItem"高中二年级"comboGrade.AddItem"高中三年级"myBookmark=mrc.BookmarkEndSubPrivateSubfirstCommand_Click()mrc.MoveFirstCallviewDataEndSubPrivateSubForm_Load()DimtxtSQLAsStringDimMsgTextAsStringtxtClassno.Enabled=FalsecomboGrade.Enabled=FalsetxtDirector.Enabled=FalsetxtClassroom.Enabled=FalsetxtSQL="select*fromclass_Info"Setmrc=ExecuteSQL(txtSQL,MsgText)mrc.MoveFirstCallviewDatamyBookmark=mrc.Bookmarkmcclean=TrueEndSubPublicSubviewData()txtClassno.Text=mrc.Fields(0)comboGrade.Text=mrc.Fields(1)txtDirector.Text=mrc.Fields(2)txtClassroom.Text=mrc.Fields(3)EndSubPrivateSublastCommand_Click()mrc.MoveLastCallviewDataEndSubPrivateSubnextCommand_Click()mrc.MoveNextIfmrc.EOFThenmrc.MoveFirstEndIfCallviewDataEndSubPrivateSubpreviousCommand_Click()mrc.MovePreviousIfmrc.BOFThenmrc.MoveLastEndIfCallviewDataEndSubPrivateSubupdateCommand_Click()DimtxtSQLAsStringDimMsgTextAsStringDimmrccAsADODB.Recordset IfmccleanThenMsgBox"请先修改班级信息",vbOKOnly+vbExclamation,"警告"ExitSubEndIfIfNotTesttxt(txtClassno.Text)ThenMsgBox"请输入班号!",vbOKOnly+vbExclamation,"警告"txtClassno.SetFocusExitSubEndIfIfNotIsNumeric(Trim(txtClassno.Text))ThenMsgBox"请输入数字!",vbOKOnly+vbExclamation,"警告"ExitSubtxtClassno.SetFocusEndIfIfNotTesttxt(comboGrade.Text)ThenMsgBox"请选择年级!",vbOKOnly+vbExclamation,"警告"comboGrade.SetFocusExitSubEndIfIfNotTesttxt(txtDirector.Text)ThenMsgBox"请输入班主任姓名!",vbOKOnly+vbExclamation,"警告"txtDirector.SetFocusExitSubEndIfIfNotTesttxt(txtClassroom.Text)ThenMsgBox"请输入教室号码!",vbOKOnly+vbExclamation,"警告"txtClassroom.SetFocusExitSubEndIfmrc.DeletetxtSQL="select*fromclass_Infowhereclass_No=""&Trim(txtClassno.Text)&"""Setmrcc=ExecuteSQL(txtSQL,MsgText)Ifmrcc.EOF=FalseThenMsgBox"班号重复,请重新输入!",vbOKOnly+vbExclamation,"警告"mrcc.ClosetxtClassno.SetFocusElsemrcc.Closemrc.AddNewmrc.Fields(0)=Trim(txtClassno.Text)mrc.Fields(1)=Trim(comboGrade.Text)mrc.Fields(2)=Trim(txtDirector.Text)mrc.Fields(3)=Trim(txtClassroom.Text)mrc.UpdateMsgBox"修改班级信息成功!",vbOKOnly+vbExclamation,"警告"mrc.Bookmark=myBookmarkCallviewDataFrame2.Enabled=TruefirstCommand.Enabled=TruepreviousCommand.Enabled=TruenextCommand.Enabled=TruelastCommand.Enabled=TruetxtClassno.Enabled=FalsecomboGrade.Enabled=FalsetxtDirector.Enabled=FalsetxtClassroom.Enabled=Falsemcclean=TrueEndIfEndSub查询深知信息窗口:PrivateSubcmdExit_Click()UnloadMeEndSubPrivateSubcmdInquire_Click()DimtxtSQLAsStringDimMsgTextAsStringDimdd(4)AsBooleanDimmrcAsADODB.Recordset txtSQL="select*fromstudent_Infowhere"IfCheck1(0).ValueThenIfTrim(txtSID.Text)=""ThensMeg="学号不能为空"MsgBoxsMeg,vbOKOnly+vbExclamation,"警告"txtSID.SetFocusExitSubElseIfNotIsNumeric(Trim(txtSID.Text))ThenMsgBox"请输入数字!",vbOKOnly+vbExclamation,"警告"ExitSubtxtSID.SetFocusEndIfdd(0)=TruetxtSQL=txtSQL&"student_ID=""&Trim(txtSID.Text)&"""EndIfEndIfIfCheck1(1).ValueThenIfTrim(txtName.Text)=""ThensMeg="姓名不能为空"MsgBoxsMeg,vbOKOnly+vbExclamation,"警告"txtName.SetFocusExitSubElsedd(1)=TrueIfdd(0)ThentxtSQL=txtSQL&"andstudent_Name=""&txtName.Text&"""ElsetxtSQL=txtSQL&"student_Name=""&txtName.Text&"""EndIfEndIfEndIfIfCheck1(2).ValueThenIfTrim(txtClassno.Text)=""ThensMeg="班号不能为空"MsgBoxsMeg,vbOKOnly+vbExclamation,"警告"txtClassno.SetFocusExitSubElsedd(2)=TrueIfdd(0)Ordd(1)ThentxtSQL=txtSQL&"andclass_No=""&txtClassno.Text&"""ElsetxtSQL=txtSQL&"class_No=""&txtClassno.Text&"""EndIfEndIfEndIfIfNot(dd(0)Ordd(1)Ordd(2)Ordd(3))ThenMsgBox"请设置查询方式!",vbOKOnly+vbExclamation,"警告"ExitSubEndIftxtSQL=txtSQL&"orderbystudent_ID"Setmrc=ExecuteSQL(txtSQL,MsgText)Withmyflexgrid.Rows=2.CellAlignment=4.TextMatrix(1,0)="学号".TextMatrix(1,1)="姓名".TextMatrix(1,2)="性别".TextMatrix(1,3)="出生日期".TextMatrix(1,4)="班号".TextMatrix(1,5)="联系电话".TextMatrix(1,6)="入校日期".TextMatrix(1,7)="家庭住址"DoWhileNotmrc.EOF.Rows=.Rows+1.CellAlignment=4.TextMatrix(.Rows-1,0)=mrc.Fields(0).TextMatrix(.Rows-1,1)=mrc.Fields(1).TextMatrix(.Rows-1,2)=mrc.Fields(2).TextMatrix(.Rows-1,3)=Format(mrc.Fields(3),"yyyy-mm-dd").TextMatrix(.Rows-1,4)= mrc.Fields(4).TextMatrix(.Rows-1,5)=mrc.Fields(5).TextMatrix(.Rows-1,6)=Format(mrc.Fields(6),"yyyy-mm-dd").TextMatrix(.Rows-1,7)=mrc.Fields(7)mrc.MoveNextLoopEndWithmrc.CloseEndSubPrivateSubForm_Load()Withmyflexgrid.CellAlignment=4.TextMatrix(1,0)="学号".TextMatrix(1,1)="姓名".TextMatrix(1,2)="性别".TextMatrix(1,3)="出生日期".TextMatrix(1,4)="班号".TextMatrix(1,5)="联系电话".TextMatrix(1,6)="入校日期".TextMatrix(1,7)="家庭住址"EndWithEndSubPrivateSubmyflexgrid_Click()EndSub查询成绩信息窗口:PrivateSubcmdExit_Click()UnloadMeEndSubPrivateSubcmdInquire_Click()DimtxtSQLAsStringDimMsgTextAsStringDimdd(4)AsBooleanDimmrcAsADODB.RecordsettxtSQL="select*fromresult_Infowhere"IfCheck1(0).ValueThenIfTrim(txtSID.Text)=""ThensMeg="学号不能为空"MsgBoxsMeg,vbOKOnly+vbExclamation,"警告"txtSID.SetFocusExitSubElseIfNotIsNumeric(Trim(txtSID.Text))ThenMsgBox"请输入数字!",vbOKOnly+vbExclamation,"警告"ExitSubtxtSID.SetFocusEndIfdd(0)=TruetxtSQL=txtSQL&"student_ID=""&Trim(txtSID.Text)&"""EndIfEndIfIfCheck1(1).ValueThenIfTrim(txtName.Text)=""ThensMeg="姓名不能为空"MsgBoxsMeg,vbOKOnly+vbExclamation,"警告"txtName.SetFocusExitSubElsedd(1)=TrueIfdd(0)ThentxtSQL=txtSQL&"andstudent_Name=""&txtName.Text&"""ElsetxtSQL=txtSQL&"student_Name=""&txtName.Text&"""EndIfEndIfEndIfIfCheck1(2).ValueThenIfTrim(txtCourse.Text)=""ThensMeg="课程不能为空"MsgBoxsMeg,vbOKOnly+vbExclamation,"警告"txtCourse.SetFocus ExitSubElsedd(2)=TrueIfdd(0)Ordd(1)ThentxtSQL=txtSQL&"andcourse_Name=""&txtCourse.Text&"""ElsetxtSQL=txtSQL&"course_Name=""&txtCourse.Text&"""EndIfEndIfEndIfIfNot(dd(0)Ordd(1)Ordd(2)Ordd(3))ThenMsgBox"请设置查询方式!",vbOKOnly+vbExclamation,"警告"ExitSubEndIftxtSQL=txtSQL&"orderbystudent_ID"Setmrc=ExecuteSQL(txtSQL,MsgText)Withmyflexgrid.Rows=2.CellAlignment=4.TextMatrix(1,0)="考试编号".TextMatrix(1,1)="学号".TextMatrix(1,2)="姓名".TextMatrix(1,3)="班号".TextMatrix(1,4)="课程名称".TextMatrix(1,5)="分数"DoWhileNotmrc.EOF.Rows=.Rows+1.CellAlignment=4.TextMatrix(.Rows-1,0)=mrc.Fields(0).TextMatrix(.Rows-1,1)=mrc.Fields(1).TextMatrix(.Rows-1,2)=mrc.Fields(2).TextMatrix(.Rows-1,3)=mrc.Fields(3).TextMatrix(.Rows-1,4)=mrc.Fields(4).TextMatrix(.Rows-1,5)=mrc.Fields(5)mrc.MoveNextLoopEndWithmrc.CloseEndSubPrivateSubForm_Load()Withmyflexgrid.CellAlignment=4.TextMatrix(1,0)="考试编号".TextMatrix(1,1)="学号".TextMatrix(1,2)="姓名".TextMatrix(1,3)="班号".TextMatrix(1,4)="课程名称".TextMatrix(1,5)="分数"EndWithEndSubPrivateSubmyflexgrid_Click()EndSub添加用户窗口:PrivateSubcmdCancel_Click()UnloadMeEndSubPrivateSubcmdOK_Click()DimtxtSQLAsStringDimmrcAsADODB.RecordsetDimMsgTextAsStringIfTrim(Text1(0).Text)=""ThenMsgBox"请输入用户名称!",vbOKOnly+vbExclamation,"警告"ExitSubText1(0).SetFocusElsetxtSQL="select*fromuser_Info"Setmrc=ExecuteSQL(txtSQL,MsgText)While(mrc.EOF=False)IfTrim(mrc.Fields(0))=Trim(Text1(0))Then MsgBox"用户已经存在,请重新输入用户名!",vbOKOnly+vbExclamation,"警告"Text1(0).SetFocusText1(0).Text=""Text1(1).Text=""Text1(2).Text=""ExitSubElsemrc.MoveNextEndIfWendEndIfIfTrim(Text1(1).Text)<>Trim(Text1(2).Text)ThenMsgBox"两次输入密码不一样,请确认!",vbOKOnly+vbExclamation,"警告"Text1(1).SetFocusText1(1).Text=""Text1(2).Text=""ExitSubElseIfText1(1).Text=""ThenMsgBox"密码不能为空!",vbOKOnly+vbExclamation,"警告"Text1(1).SetFocusText1(1).Text=""Text1(2).Text=""Elsemrc.AddNewmrc.Fields(0)=Trim(Text1(0).Text)mrc.Fields(1)=Trim(Text1(1).Text)mrc.Updatemrc.CloseMe.HideMsgBox"添加用户成功!",vbOKOnly+vbExclamation,"添加用户"EndIfEndIfEndSubPrivateSubForm_Load()EndSub添加学籍信息窗口:PrivateSubCommand1_Click()DimmrcAsADODB.RecordsetDimtxtSQLAsStringDimMsgTextAsStringIfNotTesttxt(txtSID.Text)ThenMsgBox"请输入学号!",vbOKOnly+vbExclamation,"警告"txtSID.SetFocusExitSubEndIfIfNotTesttxt(txtName.Text)ThenMsgBox"请输入姓名!",vbOKOnly+vbExclamation,"警告"txtName.SetFocusExitSubEndIfIfNotTesttxt(comboSex.Text)ThenMsgBox"请选择性别!",vbOKOnly+vbExclamation,"警告"comboSex.SetFocusExitSubEndIfIfNotTesttxt(txtBorndate.Text)ThenMsgBox"请输入出生日期!",vbOKOnly+vbExclamation,"警告"txtBorndate.SetFocusExitSubEndIfIfNotTesttxt(comboClassNo.Text)ThenMsgBox"请选择班号!",vbOKOnly+vbExclamation,"警告"comboClassNo.SetFocusExitSubEndIfIfNotTesttxt(txtTel.Text)ThenMsgBox"请输入联系电话!",vbOKOnly+ vbExclamation,"警告"txtTel.SetFocusExitSubEndIfIfNotTesttxt(txtRudate.Text)ThenMsgBox"请输入入校日期!",vbOKOnly+vbExclamation,"警告"txtRudate.SetFocusExitSubEndIfIfNotTesttxt(txtAddress.Text)ThenMsgBox"请输入家庭住址!",vbOKOnly+vbExclamation,"警告"txtAddress.SetFocusExitSubEndIfIfNotIsNumeric(Trim(txtSID.Text))ThenMsgBox"请输入数字!",vbOKOnly+vbExclamation,"警告"ExitSubtxtSID.SetFocusEndIftxtSQL="select*fromstudent_Infowherestudent_ID=""&Trim(txtSID.Text)&"""Setmrc=ExecuteSQL(txtSQL,MsgText)Ifmrc.EOF=FalseThenMsgBox"学号重复,请重新输入!",vbOKOnly+vbExclamation,"警告"mrc.ClosetxtSID.SetFocusElsemrc.CloseIfNotIsDate(txtBorndate.Text)ThenMsgBox"出生时间应输入日期格式(yyyy-mm-dd)!",vbOKOnly+vbExclamation,"警告"txtBorndate.SetFocusElsetxtBorndate=Format(txtBorndate,"yyyy-mm-dd")IfNotIsDate(txtRudate.Text)ThenMsgBox"入校时间应输入日期格式(yyyy-mm-dd)!",vbOKOnly+vbExclamation,"警告"txtRudate.SetFocusElsetxtRudate=Format(txtRudate,"yyyy-mm-dd")txtSQL="select*fromstudent_Info"Setmrc=ExecuteSQL(txtSQL,MsgText)mrc.AddNewmrc.Fields(0)=Trim(txtSID.Text)mrc.Fields(1)=Trim(txtName.Text)mrc.Fields(2)=Trim(comboSex.Text)mrc.Fields(3)=Trim(txtBorndate.Text)mrc.Fields(4)=Trim(comboClassNo.Text)mrc.Fields(5)=Trim(txtTel.Text)mrc.Fields(6)=Trim(txtRudate.Text)mrc.Fields(7)=Trim(txtAddress.Text)mrc.Fields(8)=Trim(txtComment.Text)mrc.UpdateMsgBox"添加学籍信息成功!",vbOKOnly+vbExclamation,"警告"mrc.CloseMe.HideEndIfEndIfEndIfEndSub PrivateSubCommand2_Click()UnloadMeEndSubPrivateSubForm_Load()DimmrcAsADODB.RecordsetDimtxtSQLAsStringDimMsgTextAsStringDimiAsIntegercomboSex.AddItem"男"comboSex.AddItem"女"txtSQL="select*fromclass_Info"Setmrc=ExecuteSQL(txtSQL,MsgText)Fori=1Tomrc.RecordCountcomboClassNo.AddItemmrc.Fields(0)mrc.MoveNextNextimrc.CloseEndSub添加成绩信息窗口:DimFlagselectAsBooleanDimGradeAsStringPrivateSubcmdCancel_Click()UnloadMeEndSubPrivateSubcmdOK_Click()DimmrcAsADODB.RecordsetDimtxtSQLAsStringDimMsgTextAsStringIfNotTesttxt(comboExamtype.Text)ThenMsgBox"请输入考试编号!",vbOKOnly+vbExclamation,"警告"ExitSubEndIfIfNotTesttxt(comboClassno.Text)ThenMsgBox"请选择班号!",vbOKOnly+vbExclamation,"警告"ExitSubEndIfIfNotTesttxt(comboSID.Text)ThenMsgBox"请选择学号!",vbOKOnly+vbExclamation,"警告"ExitSubEndIfIfNotTesttxt(comboCourse.Text)ThenMsgBox"请选择课程!",vbOKOnly+vbExclamation,"警告"ExitSubEndIfIfNotTesttxt(txtResult.Text)ThenMsgBox"请输入分数!",vbOKOnly+vbExclamation,"警告"ExitSubEndIfIfNotIsNumeric(txtResult.Text)ThenMsgBox"分数请输入数字!",vbOKOnly+vbExclamation,"警告"ExitSubEndIftxtSQL="select*fromresult_Infowhereexam_No=""&comboExamtype.Text&""andstudent_ID=""&comboSID.Text&""andcourse_Name=""&comboCourse.Text&"""Setmrc=ExecuteSQL(txtSQL,MsgText)Ifmrc.EOF=FalseThenMsgBox"有相同纪录,请重新输入信息!",vbOKOnly+vbExclamation,"警告"mrc.CloseElsemrc.AddNewmrc.Fields(0)=comboExamtype.Textmrc.Fields(1)=comboSID.Textmrc.Fields(2)=txtName.Textmrc.Fields(3)=comboClassno.Textmrc.Fields(4)=comboCourse.Textmrc.Fields(5)=txtResult.Textmrc.Updatemrc.CloseMsgBox"添加成绩成功!",vbOKOnly+vbExclamation,"警告"UnloadMeEndIf EndSubPrivateSubcomboClassno_Click()DimmrcAsADODB.RecordsetDimtxtSQLAsStringDimMsgTextAsStringcomboSID.ClearcomboCourse.CleartxtSQL="select*fromstudent_Infowhereclass_NO=""&comboClassno.Text&"""Setmrc=ExecuteSQL(txtSQL,MsgText)While(mrc.EOF=False)comboSID.AddItemmrc!student_IDmrc.MoveNextWendmrc.ClosetxtSQL="select*fromclass_Infowhereclass_No=""&comboClassno.Text&"""Setmrc=ExecuteSQL(txtSQL,MsgText)Grade=mrc!Grademrc.ClosetxtSQL="select*fromgradecourse_Infowheregrade=""&Grade&"""Setmrc=ExecuteSQL(txtSQL,MsgText)While(mrc.EOF=False)comboCourse.AddItemmrc!course_Namemrc.MoveNextWendmrc.CloseFlagselect=TrueEndSubPrivateSubcomboCourseno_Change()EndSubPrivateSubcomboSID_Click()DimmrcAsADODB.RecordsetDimtxtSQLAsStringDimMsgTextAsStringtxtSQL="select*fromstudent_Infowherestudent_ID=""&comboSID.Text&"""Setmrc=ExecuteSQL(txtSQL,MsgText)txtName.Text=mrc!student_Namemrc.CloseEndSubPrivateSubForm_Load()DimmrcAsADODB.RecordsetDimtxtSQLAsStringDimMsgTextAsStringFlagselect=FalsetxtSQL="select*fromclass_Info"Setmrc=ExecuteSQL(txtSQL,MsgText)While(mrc.EOF=False)comboClassno.AddItemmrc!class_Nomrc.MoveNextWendmrc.ClosecomboExamtype.AddItem"2000期中"comboExamtype.AddItem"2000期末"comboExamtype.AddItem"2001期中"comboExamtype.AddItem"2001期末"EndSub添加课程信息窗口:PrivateSubCommand1_Click()DimmrcAsADODB.RecordsetDimMsgTextAsStringDimtxtSQLAsStringIfNotTesttxt(txtCourseno.Text)ThenMsgBox"请输入课程编号!",vbOKOnly+vbExclamation,"警告"txtCourseno.SetFocusExitSubEndIfIfNotTesttxt(txtCoursename.Text)ThenMsgBox"请输入课程名称!",vbOKOnly+ vbExclamation,"警告"txtCoursename.SetFocusExitSubEndIfIfNotTesttxt(comboCoursetype.Text)ThenMsgBox"请选择课程类型!",vbOKOnly+vbExclamation,"警告"comboCoursetype.SetFocusExitSubEndIfIfNotTesttxt(txtCoursedes.Text)ThenMsgBox"请输入课程描述信息!",vbOKOnly+vbExclamation,"警告"txtCoursedes.SetFocusExitSubEndIfIfNotIsNumeric(Trim(txtCourseno.Text))ThenMsgBox"请输入数字编号!",vbOKOnly+vbExclamation,"警告"ExitSubtxtCourseno.SetFocusEndIftxtSQL="select*fromcourse_Info"Setmrc=ExecuteSQL(txtSQL,MsgText)While(mrc.EOF=False)If(Trim(mrc.Fields(0))=Trim(txtCourseno.Text))ThenMsgBox"课程编号已经存在,请重新输入课程编号!",vbOKOnly+vbExclamation,"警告"txtCourseno.Text=""txtCourseno.SetFocusExitSubElsemrc.MoveNextEndIfWendmrc.AddNewmrc.Fields(0)=Trim(txtCourseno.Text)mrc.Fields(1)=Trim(txtCoursename.Text)mrc.Fields(2)=Trim(comboCoursetype.Text)mrc.Fields(3)=Trim(txtCoursedes.Text)mrc.Updatemrc.CloseMsgBox"添加课程信息成功!",vbOKOnly+vbExclamation,"添加课程信息"UnloadMeEndSubPrivateSubCommand2_Click()UnloadMeEndSubPrivateSubForm_Load()comboCoursetype.AddItem"必修"comboCoursetype.AddItem"考查"EndSub添加班级信息窗口:PrivateSubCommand1_Click()DimmrcAsADODB.RecordsetDimMsgTextAsStringDimtxtSQLAsStringIfNotTesttxt(txtClassno.Text)ThenMsgBox"请输入班号!",vbOKOnly+vbExclamation,"警告"txtClassno.SetFocusExitSubEndIfIfNotTesttxt(comboGrade.Text)ThenMsgBox"请选择年级!",vbOKOnly+vbExclamation,"警告"comboGrade.SetFocusExitSubEndIfIfNotTesttxt(txtDirector.Text)ThenMsgBox"请输入班主任姓名!",vbOKOnly+vbExclamation,"警告"txtDirector.SetFocusExitSub EndIfIfNotTesttxt(txtClassroom.Text)ThenMsgBox"请输入教室房间号!",vbOKOnly+vbExclamation,"警告"txtClassroom.SetFocusExitSubEndIfIfNotIsNumeric(Trim(txtClassno.Text))ThenMsgBox"请输入数字!",vbOKOnly+vbExclamation,"警告"ExitSubtxtClassno.SetFocusEndIftxtSQL="select*fromclass_Info"Setmrc=ExecuteSQL(txtSQL,MsgText)mrc.MoveFirstWhile(mrc.EOF=False)If(Trim(mrc.Fields(0))=Trim(txtClassno.Text))ThenMsgBox"班号已经存在,请重新输入班号!",vbOKOnly+vbExclamation,"警告"ExitSubtxtClassno.Text=""txtClassno.SetFocusElsemrc.MoveNextEndIfWendmrc.AddNewmrc.Fields(0)=Trim(txtClassno.Text)mrc.Fields(1)=Trim(comboGrade.Text)mrc.Fields(2)=Trim(txtDirector.Text)mrc.Fields(3)=Trim(txtClassroom.Text)mrc.Updatemrc.CloseMsgBox"添加班级信息成功!",vbOKOnly+vbExclamation,"添加班级信息"EndSubPrivateSubCommand2_Click()UnloadMeEndSubPrivateSubForm_Load()comboGrade.AddItem"初中一年级"comboGrade.AddItem"初中二年级"comboGrade.AddItem"初中三年级"comboGrade.AddItem"高中一年级"comboGrade.AddItem"高中二年级"comboGrade.AddItem"高中三年级"EndSubABOUT窗口:"RegKeySecurityOptions...ConstKEY_ALL_ACCESS=&H2003F"RegKeyROOTTypes...ConstHKEY_LOCAL_MACHINE=&H80000002ConstERROR_SUCCESS=0ConstREG_SZ=1"UnicodenulterminatedstringConstREG_DWORD=4"32-bitnumberConstgREGKEYSYSINFOLOC="SOFTWAREMicrosoftSharedToolsLocation"ConstgREGVALSYSINFOLOC="MSINFO"ConstgREGKEYSYSINFO="SOFTWAREMicrosoftSharedToolsMSINFO"ConstgREGVALSYSINFO="PATH"PrivateDeclareFunctionRegOpenKeyExLib"advapi32"Alias"RegOpenKeyExA"(ByValhKeyAsLong,ByVallpSubKeyAsString,ByValulOptionsAsLong,ByValsamDesiredAsLong,ByRefphkResultAsLong)AsLongPrivateDeclareFunctionRegQueryValueExLib"advapi32"Alias"RegQueryValueExA"(ByValhKeyAsLong,ByVallpValueNameAsString,ByVallpReservedAsLong,ByReflpTypeAsLong,ByVallpDataAsString,ByReflpcbDataAsLong)AsLongPrivateDeclareFunctionRegCloseKeyLib "advapi32"(ByValhKeyAsLong)AsLongPrivateSubForm_Load()lblVersion.Caption="Version"&App.Major&"."&App.Minor&"."&App.RevisionlblTitle.Caption=App.TitleEndSubPrivateSubcmdSysInfo_Click()CallStartSysInfoEndSubPrivateSubcmdOK_Click()UnloadMeEndSubPublicSubStartSysInfo()OnErrorGoToSysInfoErrDimrcAsLongDimSysInfoPathAsString"TryToGetSystemInfoProgramPathNameFromRegistry...IfGetKeyValue(HKEY_LOCAL_MACHINE,gREGKEYSYSINFO,gREGVALSYSINFO,SysInfoPath)Then"TryToGetSystemInfoProgramPathOnlyFromRegistry...ElseIfGetKeyValue(HKEY_LOCAL_MACHINE,gREGKEYSYSINFOLOC,gREGVALSYSINFOLOC,SysInfoPath)Then"ValidateExistanceOfKnown32BitFileVersionIf(Dir(SysInfoPath&"MSINFO32.EXE")<>"")ThenSysInfoPath=SysInfoPath&"MSINFO32.EXE""Error-FileCanNotBeFound...ElseGoToSysInfoErrEndIf"Error-RegistryEntryCanNotBeFound...ElseGoToSysInfoErrEndIfCallShell(SysInfoPath,vbNormalFocus)ExitSubSysInfoErr:MsgBox"SystemInformationIsUnavailableAtThisTime",vbOKOnlyEndSubPublicFunctionGetKeyValue(KeyRootAsLong,KeyNameAsString,SubKeyRefAsString,ByRefKeyValAsString)AsBooleanDimiAsLong"LoopCounterDimrcAsLong"ReturnCodeDimhKeyAsLong"HandleToAnOpenRegistryKeyDimhDepthAsLong"DimKeyValTypeAsLong"DataTypeOfARegistryKeyDimtmpValAsString"TemporyStorageForARegistryKeyValueDimKeyValSizeAsLong"SizeOfRegistryKeyVariable"------------------------------------------------------------"OpenRegKeyUnderKeyRoot{HKEY_LOCAL_MACHINE...}"------------------------------------------------------------ rc=RegOpenKeyEx(KeyRoot,KeyName,0,KEY_ALL_ACCESS,hKey)"OpenRegistryKeyIf(rc<>ERROR_SUCCESS)ThenGoToGetKeyError"HandleError...tmpVal=String$(1024,0)"AllocateVariableSpaceKeyValSize=1024"MarkVariableSize"------------------------------------------------------------"RetrieveRegistryKeyValue..."------------------------------------------------------------rc=RegQueryValueEx(hKey,SubKeyRef,0,KeyValType,tmpVal,KeyValSize)"Get/CreateKeyValueIf(rc<>ERROR_SUCCESS)ThenGoToGetKeyError"HandleErrorstmpVal=VBA.Left(tmpVal,InStr(tmpVal,VBA.Chr(0))-1)"------------------------------------------------------------"DetermineKeyValueTypeForConversion..."------------------------------------------------------------SelectCaseKeyValType"SearchDataTypes...CaseREG_SZ"StringRegistryKeyDataTypeKeyVal=tmpVal"CopyStringValueCaseREG_DWORD"DoubleWordRegistryKeyDataTypeFori=Len(tmpVal)To1Step-1"ConvertEachBitKeyVal=KeyVal+Hex(Asc(Mid(tmpVal,i,1)))"BuildValueChar.ByChar.NextKeyVal=Format$("&h"+KeyVal)"ConvertDoubleWordToStringEndSelectGetKeyValue=True"ReturnSuccessrc=RegCloseKey(hKey)"CloseRegistryKeyExitFunction"ExitGetKeyError:"CleanupAfterAnErrorHasOccured...KeyVal="""SetReturnValToEmptyStringGetKeyValue=False"ReturnFailurerc=RegCloseKey(hKey)"CloseRegistryKeyEndFunctionPrivateSublblDescription_Click()EndSub'