版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 毕毕 业业 论论 文文 (设设 计计) 题题 目目 学生学籍管理系统学生学籍管理系统英文题目英文题目S Studentstudents studentstudent statusstatus managesmanages systemsystem院院 系系 信息科学与技术学院信息科学与技术学院 专专 业业 计算机网络技术计算机网络技术 姓姓 名名 高望春高望春 年年 级级 指导教师指导教师 - 3 -目目 录录摘摘 要要.- 3 -ABSTRACT .- 4 -第一章第一章 系统需求分析系统需求分析.- 5 -第二章第二章 可行性分析可行性分析.- 6 -第三章第三章 系统设计系统设计.-
2、7 -31.系统功能分析.- 7 -32.系统流程图.- 8 -第四章、数据库设计第四章、数据库设计.- 9 -41.数据库需求分析.- 9 -42.数据库概念结构设计.- 10 -43.数据库结构的实现.- 13 -第五章、详细设计第五章、详细设计.- 16 -51 主窗体的创建.- 16 -52.用户管理模块的创建.- 21 -53 学籍管理模块的创建.- 28 -54 班级管理模块的创建.- 46 -55 课程设置模块的创建.- 50 -56 成绩管理模块的创建.- 58 -第七章第七章 总总 结结.- 63 -参考文献参考文献.- 64 -致致 谢谢.- 65 - 4 -摘摘 要要随着
3、信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。 本文介绍了在 Visual Basic6.0 环境下采用“自上而下地总体规划,自下而上地应用开发”的策略开发一个管理信息系统的过程。通过分析访客管理的不足,创建了一套行之有效的计算机管理学生的方案。文章介绍了访客管理信息系统的系统分析部分,包括可行性分析、业务流程分析等;系统设计部分主要介绍了系统功能设计和数据库设计及代码设计;系统实现部分说明了几个主要模块的算法, 本系统面
4、友好,操作简单,比较实用。关键词:关键词:SQLSQL 20002000 server,VBserver,VB 程序设计程序设计, ,软件工程软件工程- 5 -Abstract Along with information technique more and more thorough but extensive on the management of application, manage information system of the implement has been gradually mature on the technique.Manage the informatio
5、n system is a new academics which continuously develops, the whichever unit wants to exist to want adevelopment, high-efficiencily internal activity organically the organization get up, have to build up adapting with oneself characteristics mutually of management information system. This text introd
6、uced in the Visual Basic6.0 under the environments the strategy of adoptionfrom top to bottom total programming, from bottom but last pplication development develop a process which manage information system.Pass the shortage of analytical visitor management, established a valid a set of line a calcu
7、lator a management the students project.The article introduced visitor a management information system of system analysis part, System realization part explained a few calculate ways of main mold piece, this system interface amity, operation simple, more practical.KeywordKeyword:TheThe SQLSQL 200020
8、00 serversservers、 VBVB programprogram designdesign、softwaresoftware - 6 -engineeringengineering第一章第一章 系统需求分析系统需求分析伴随社会的高速发展,全国各高校的学生数量一直在增加,在这样的形式下,必须要求学校有一种高效有序的方法来管理学生的信息。通过调查,要求系统需要有以下功能: 由于操作人员的计算机知识普遍较差,要求有良好的人机界面; 由于该系统的使用对象多,要求有较好的权限管理; 原始数据修改简单方便,支持多条件修 方便的数据查询,支持多条件查询; 在相应的权限下,删除数据方便简单,数据稳
9、定性好; 数据计算自动完成,尽量减少人工干预;- 7 -第二章第二章 可行性分析可行性分析由于本系统管理的对象单一,都是学生,且每个数据内容具有较强的关联性,涉及的计算过程不是很复杂。因此,比较适合于采用数据库管理。在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上资料,特别是参考其它程序的功能,因此完全可以实现。本系统的设计是在 Windows XPXP操作系统环境下,使用 Visual Basic 6.0中文版开发成功的。数据库是 MIS 中的重要支持技术,在 MIS 开发过程中,如何选择数据库管理是一个重要的问题,本系统选用的数据库语言介绍如下:Visual Basic 具有
10、以下特点:(1)可视化编程:用传统程序设计语言设计程序时,都是通过编写程序代码来设计用户界面,在设计过程中看不到界面的实际显示效果,必须编译后运行程序才能观察。如果对界面的效果不满意,还要回到程序中修改有时候,这种编程-编译-修改的操作可能要反复多次,大大影响了软件开发效率。Visual Basic 提供了可视化设计工具,把 Windows 界面设计的复杂性“封装”起来,开发人员不必为界面设计而编写大量程序代码。只需要按设计要求的屏幕布局,用系统提供的工具,在屏幕上画出各种“部件” ,即图形对象,并设置这些图形对象的属性。Visual Basic 自动产生界面设计代码,程序设计人员只需要编写实
11、现程序功能的那部分代码,从而可以大大提高程序设计的效率。(2)面向对象的程序设计4.0 版以后的 Visual Basic 支持面向对象的程序设计,是应用面向对象的- 8 -程序设计方法(OOP),把程序和数据封装起来作为一个对象,并为每个对象赋予应有的属性,使对象成为实在的东西。在设计对象时,不必编写建立和描述每个对象的程序代码,而是用工具画在界面上,Visual Basic 自动生成对象的程序代码并封装起来。每个对象以图形方式显示在界面上,都是可视的。第三章第三章 系统设计系统设计31.31.系统功能分析系统功能分析系统开发的总体任务是实现学生信息关系的系统化,规范化和自动化。 学生管理系
12、统需要完成的功能主要有: 学生信息的输入,包括输入学生基本信息、所在班级、所学课和 成 绩等。 学生信息的查询,包括输入学生基本信息、所在班级、已学课程和成绩 等。 学生信息的修改。 班级管理信息的输入、查询、修改,包括输入班级设置,年级信息等。 基本课程信息的输入、查询、修改。 学生成绩信息的输入、查询、修改。 对上述各功能进行集中、分块、按照结构化程序设计的要求。- 9 -学生信息管理系统学籍管理功能班级管理功能课程管理功能成绩管理功能学籍添加学籍修改学籍查询班级添加课程添加课程修改课程查询成绩添加成绩修改成绩查询班级修改班级查询图3-1 系统功能模块图- 10 -32.32.系统流程图系
13、统流程图 登录成功选择操作开始用户管理学籍管理班级管理课程设置成绩管理退出系统添加修改查询结束NY图3-2 系统流程图- 11 -第四章、数据库设计第四章、数据库设计41.41.数据库需求分析数据库需求分析 用户信息:包括的数据项有:用户名、密码、用户描述。 学生基本信息:包括的数据项有:学生学号、学生姓名、性别、出生日期、班号、联系电话、入校日期、家庭地址、备注等。 班级信息:包括的数据项有:班号、所在年级、班主任姓名、所在教室等。 课程基本信息:包括的数据项有:课程号、课程名称、课程类别、课程描述等。 课程设置信息:包括的数据项有:年级信息、所学课程等。 学生成绩信息:包括的数据项有:考试
14、编号、所在班号、学生学号、学生姓名、所学课程、考试分数等。 学生管理系统用户信息学生基本信息班级信息课程基本信息年级课程 成绩信息 数据库 图4-1 学生管理系统数据流程图- 12 -42.42.数据库概念结构设计数据库概念结构设计 本系统的实体有:学生实体、班级实体、年级实体、课程实体。各个实体具体的描述E-R图如图下所示。 学生基本信息班级成绩课程图4-2 学生实体ER图 班级所在年级班主任所在教室班号图4-3 班级实体ER图 课程名称编号描述类型 图4-4 课程实体ER图 - 13 - 年级包括班级设置课程课程图4-5 年级实体ER图 学生班级年级课程1nnnnmmnn111 图4-6
15、实体之间关系ER图 现在需要将上面的数据库概念结构转化为SQL Server 2000 数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。学生管理系统数据库中各个表格的设计结果如下面的几个表所示。每个表表示在数据库中的一个数据表表4-1 student-info学生基本信息表- 14 - 表4-2 class-info班级基本信息表 表4-3 course-info 课程基本信息表 表4-4 gradecourse-info年级课程设置表格 - 15 -表4-5 result-info学生成绩基本信息表 表4-6 user-info 系统用户表 43.43.数据库结构的实现数据库结构的实
16、现 经过前面的需求分析和概念结构设计以后,得到数据库的逻辑结构。就可以在SQL Servr 2000数据库系统中实现该逻辑结构,利用SQL Server 2000数据库系统中SQL查询分析器实现的。(1)创建系统用户表格user_infoCREATE TABLE dbo.user_Info (user_ID char (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,user_PWD char (10) COLLATE Chinese_PRC_CI_AS NULL ,user_Des char (10) COLLATE Chinese_PRC_CI_AS NUL
17、L) ON PRIMARYGO(2)创建学生基本信息表格student_infoCREATE TABLE dbo.student_Info (student_ID int NOT NULL ,student_Name char (10) COLLATE Chinese_PRC_CI_AS NULL ,student_Sex char (2) COLLATE Chinese_PRC_CI_AS NULL ,born_Date datetime NULL ,- 16 -class_NO int NULL ,tele_Number char (10) COLLATE Chinese_PRC_CI_A
18、S NULL ,ru_Date datetime NULL ,address varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,comment varchar (200) COLLATE Chinese_PRC_CI_AS NULL) ON PRIMARYGO(3)创建班级信息表格class-infoCREATE TABLE dbo.class_Info (class_No int NOT NULL ,grade char (10) COLLATE Chinese_PRC_CI_AS NULL ,director char (10) COLLATE Ch
19、inese_PRC_CI_AS NULL ,classroom_No char (10) COLLATE Chinese_PRC_CI_AS NULL) ON PRIMARYGO(4)创建课程基本信息表格course-infoCREATE TABLE dbo.course_Info (course_No int NOT NULL ,course_Name char (10) COLLATE Chinese_PRC_CI_AS NULL ,course_Type char (10) COLLATE Chinese_PRC_CI_AS NULL ,course_Des char (50) COLL
20、ATE Chinese_PRC_CI_AS NULL) ON PRIMARYGO(5)创建年级课程设置信息表gradecourse-infoCREATE TABLE dbo.gradecourse_Info (grade char (10) COLLATE Chinese_PRC_CI_AS NULL ,course_Name char (10) COLLATE Chinese_PRC_CI_AS NULL) ON PRIMARYGO(6)创建学生成绩信息表result-infoCREATE TABLE dbo.result_Info (- 17 -exam_No char (10) COLL
21、ATE Chinese_PRC_CI_AS NOT NULL ,student_ID int NOT NULL ,student_Name char (10) COLLATE Chinese_PRC_CI_AS NULL ,class_No int NULL ,course_Name char (10) COLLATE Chinese_PRC_CI_AS NULL ,result float NULL) ON PRIMARYGO- 18 -第五章、详细设计第五章、详细设计5151 主窗体的创建主窗体的创建 上面的SQL语句在SQL Server 2000中查询分析器执行后,将自动产生需要的所有
22、表。有关数据库结构的所有后台工作已经完成。现在将通过学生管理系统中各个功能模块的实现,来编写数据库系统的客户端程序。1. 创建工程项目创建工程项目Student-MIS 为了用Visual Basic创建应用程序,应当使用工程。一个工程是用来建造应用程序的文件的集合,它包括: 跟踪所有部件的工程文件(.vbp) 。 每个窗体的文件(.frm) 。 每个窗体的二进制数据文件(.frx) ,它含有窗体上控件的属性数据。对含有二进制属性的任何.frm文件都是不可编辑的,这些文件都是自动产生的。 每个类模块的一个文件(.cls) ,该文件是可选项。 每个标准模块的一个文件(.bas) ,该文件是可选项
23、。 一个或多个包含ActiveX控件的文件(.ocx) ,该文件是可选项。 单个资源文件(.res) ,该文件是可选项。 启动Visual Basic后,单击File|New Project菜单,如图所示的工程模块中选择Standard EXE,Visual Basic将自动产生一个Form窗体,属性都是缺省设置。这里我们删除这个窗体,单击File|New Project菜单,将这个工程项目命名为Student-MIS。 如图5-1: 创建Student-MIS项目 2.创建主窗体创建主窗体- 19 - Visual Basic创建的应用程序可以是SDI(单文档界面)和MDI(多文档界面) 。
24、在SDI的程序中,每个窗体之间是独立的。而MDI的程序中,有一个窗体是主窗体,可以包含其她窗体,它的类型是MDI Form。本系统采用多文档界面,这样可以使程序更加美观,整齐有序。 单击工具栏的“ADD MDI Form”按钮,生成一个如下所示的窗体, 图5-2 程序主窗体创建主窗体的菜单 : 图5-3主窗体中菜单结构3.创建公用模块创建公用模块- 20 - 在Visual Basic中可以用共用模块来存放整个工程项目公用的函数、全局变量等。整个工程项目中的任何地方都可以调用公用模块中的函数、变量,这样可以极大地提高代码的效率。在项目资源管理器中为项目添加一个Module,保存为Module.
25、bas。下面就可以开始添加需要的代码。 由于系统中各个功能模块都将频繁使用数据库中的各种数据,因此需要一个公共的数据操作函数,用以执行各种SQL语句。添加函数ExecuteSQL,代码如下:Public Function ExecuteSQL(ByVal SQL _As String, MsgString As String) _As ADODB.Recordset传递参数SQL查询语句,MsgString传递查询信息自身以一个数据集对象的形式返回Dim CNn As ADODB.Connection定义连接Dim rst As ADODB.Recordset定义字符串Dim sTokens(
26、) As String异常处理On Error GoTo ExecuteSQL_Error用Split函数产生一个包含各个子串的数组sTokens = Split(SQL)创建连接Set CNn = New ADODB.ConnectionCNn.Open ConnectString判断字符串中是否有指定内容If InStr(INSERT,DELETE,UPDATE, _UCase$(sTokens(0) Then执行查询语句CNn.Execute SQL返回查询信息MsgString = sTokens(0) & _ query successfulElse- 21 -创建数据集对象
27、Set rst = New ADODB.Recordset返回查询结果rst.Open Trim$(SQL), CNn, _adOpenKeyset, _adLockOptimisticrst.MoveLast get RecordCountSet ExecuteSQL = rstMsgString = 查询到 & rst.RecordCount & _End IfExecuteSQL_Exit:清空数据集对象Set rst = Nothing中断连接Set CNn = NothingExit Function错误类型判断ExecuteSQL_Error:MsgString =
28、 查询错误: & _Err.DescriptionResume ExecuteSQL_ExitEnd Function ExecuteSQL函数有两了参数:SQL和MsgString。其中SQL用来存放需要执行的SQL语句,MsgString用来返回执行的提示信息。函数执行时,首先判断SQL语句中包含的内容。当执行查询操作时,ExecuteSQL函数将返回一个与函数同名的记录名对象(Recordset) ,所有满足条件的记录包含在对象中。当执行如删除、更新、添加等操作时,不返回记录集对象。 在ExecuteSQL函数中使用Connect String函数,这个函数用来连接数据库,代码如
29、下:Public Function ConnectString() _As String返回一个数据库连接ConnectString = FileDSN=studentinfo.dsn;UID=sa;PWD=- 22 -End Function由于在后面的程序中,需要频繁检查各种文本框的内容是否为空,这里定义了Testtxt函数,代码如下:Public Function Testtxt(txt As String) As BooleanIf Trim(txt) = ThenTesttxt = FalseElseTesttxt = TrueEnd IfEnd Function 由于学生管理系统启
30、动后,需要对用户进行判断。如果登录者是授权用户,将进入系统,否则将停止程序的执行。这个判断需要在系统运行的最初进行,因此将代码放在公用模块中,代码如下:Public fMainForm As frmMainPublic UserName As StringSub Main()Dim fLogin As New frmLogin显示登陆窗体fLogin.Show vbModal判断是否授权用户If Not fLogin.OK ThenLogin Failed so exit appEndEnd IfUnload fLoginSet fMainForm = New frmMainfMainForm
31、.ShowEnd Sub过程Main将在系统启动是首先执行,这就保证对用户的管理。- 23 -52.52.用户管理模块的创建用户管理模块的创建系统管理模块主要实现: 用户登录。 添加用户。 修改用户密码。1.用户登陆窗体的创建用户登陆窗体的创建系统启动后,将首先出现如下所示的用户登陆窗体,用户首先输入用户名,然后输入密码。如果用户3次输入密码不正确,将退出程序。 图5-4用户登录窗体 用户登陆窗体中放置了两个文本框(TextBox) ,用来输入用户名和用户密码。两个按钮(CommandButton)用来确定或者取消登陆。2个标签(Label)用来标示窗体的信息。为窗体定义全局变量OK,用来判断
32、登陆是否成功。定义 miCount,用来记载输入密码的次数。并且在载入窗体时初始化这两个全局变量,代码如下:强制变量声明Option Explicit- 24 -Public OK As Boolean记录确定次数Dim miCount As IntegerPrivate Sub Form_Load()Dim sBuffer As StringDim lSize As LongsBuffer = Space$(255)lSize = Len(sBuffer)Call GetUserName(sBuffer, lSize)If lSize 0 ThentxtUserName.Text = Els
33、etxtUserName.Text = vbNullStringEnd IfOK = FalsemiCount = 0End SubOption Explicit是用来规定所有变量使用前必须定义。这样可以避免由于输入错误而产生的新变量。当用户输入完用户名和用户密码,单击cmdOK按钮将对用户输入信息进行判断。用户单击该按钮,将触发按钮cmdOK的Click事件,代码如下:Private Sub cmdOK_Click()用来存放SQL语句Dim txtSQL As String用来存放记录集对象Dim mrc As ADODB.Recordset用来存放返回信息Dim MsgText As S
34、tringUserName = 判断输入用户名是否为空If Trim(txtUserName.Text = ) ThenMsgBox 没有这个用户,请重新输入用户名!, vbOKOnly + vbExclamation, 警告txtUserName.SetFocus- 25 -ElsetxtSQL = select * from user_Info where user_ID = & txtUserName.Text & Set mrc = ExecuteSQL(txtSQL, MsgText)If mrc.EOF = True ThenMsgBox 没有这个用户,请重新输入用
35、户名!, vbOKOnly + vbExclamation, 警告txtUserName.SetFocusElse判断输入密码是否正确If Trim(mrc.Fields(1) = Trim(txtPassword.Text) ThenOK = Truemrc.CloseMe.HideUserName = Trim(txtUserName.Text)ElseMsgBox 输入密码不正确,请重新输入!, vbOKOnly + vbExclamation, 警告txtPassword.SetFocustxtPassword.Text = End IfEnd IfEnd If记载输入密码次数miCo
36、unt = miCount + 1If miCount = 3 ThenMe.HideEnd IfExit SubEnd Sub用户如果没有输入用户名和用户密码,将出现消息框给予提示。如果输入的用户名在用户表格中没有找到,将提示重新输入用户名,文本框txtUserName将重新获得输入焦点。如果用户输入的密码不正确,文本框txtPassword将重新获得输入焦点。用户登陆成功,全局变量OK将被赋值为True。一旦三次输入密码均不正确,全局变量OK将被赋值为False。公用模块中的Main过程将根据OK的值决定是退出,或者进入系统。如果用户取消登陆,单击“取消”按钮,将- 26 -触发按钮的Cl
37、ick事件,代码如下:Private Sub cmdCancel_Click()OK = FalseMe.HideEnd Sub2.添加用户窗体的创建添加用户窗体的创建 进入系统后,选择菜单“系统添加用户”就可以添加用户,出现如下所示的窗体。 图5-5 添加用户窗体用户需要两次输入密码,用来确保输入密码的正确。用户输入信息完毕,单击“确定”按钮将触发Click事件,代码如下:Private Sub cmdOK_Click()Dim txtSQL As StringDim mrc As ADODB.RecordsetDim MsgText As String判断是否为空If Trim(Text1
38、(0).Text) = ThenMsgBox 请输入用户名称!, vbOKOnly + vbExclamation, 警告Exit SubText1(0).SetFocus- 27 -ElsetxtSQL = select * from user_Info Set mrc = ExecuteSQL(txtSQL, MsgText)判断数据集是否为空While (mrc.EOF = False)判断是否有重复记录If Trim(mrc.Fields(0) = Trim(Text1(0) ThenMsgBox 用户已经存在,请重新输入用户名!, vbOKOnly + vbExclamation,
39、警告Text1(0).SetFocusText1(0).Text = Text1(1).Text = Text1(2).Text = Exit SubElsemrc.MoveNextEnd IfWendEnd If判断两次输入密码是否一致If Trim(Text1(1).Text) Trim(Text1(2).Text) ThenMsgBox 两次输入密码不一样,请确认!, vbOKOnly + vbExclamation, 警告Text1(1).SetFocusText1(1).Text = Text1(2).Text = Exit SubElse判断输入密码是否为空If Text1(1).
40、Text = ThenMsgBox 密码不能为空!, vbOKOnly + vbExclamation, 警告Text1(1).SetFocusText1(1).Text = - 28 -Text1(2).Text = Elsemrc.AddNewmrc.Fields(0) = Trim(Text1(0).Text)mrc.Fields(1) = Trim(Text1(1).Text)mrc.Updatemrc.CloseMe.HideMsgBox 添加用户成功!, vbOKOnly + vbExclamation, 添加用户End IfEnd IfEnd Sub 一旦输入完毕,系统将首先查询
41、数据库中与新建用户名相同的记录,如果有相同记录将提示用户重新输入用户名。当确定数据库中没有相同的用户名,并且两次输入密码一致时,将把该条记录加到数据库中。单击“取消”按钮将取消添加用户操作,代码如下:Private Sub cmdCancel_Click()Unload MeEnd Sub3.修改用户密码窗体的创建修改用户密码窗体的创建用户可以修改自己的密码,选择菜单“系统修改密码” ,出现如下所示的窗体。- 29 - 图5-6 修改密码窗体在这两个窗体中放置了两个文本框,用来输入密码和确认密码。两了按钮用来确定是否修改密码。两个标签用来标示文本框的内容。两次输入密码后,单击“确认”按钮,将触
42、发Click事件判断是否修改密码,代码如下:Private Sub cmdOK_Click()Dim txtSQL, MsgText As StringDim mrc As ADODB.Recordset判断是否为空If Trim(Text1(1).Text) Trim(Text1(2).Text) ThenMsgBox 密码输入不正确!, vbOKOnly + vbExclamation, 警告Text1(1).SetFocusText1(1).Text = ElsetxtSQL = select * from user_Info where user_ID = & UserName
43、 & Set mrc = ExecuteSQL(txtSQL, MsgText)mrc.Fields(1) = Text1(1).Textmrc.Updatemrc.CloseMsgBox 密码修改成功!, vbOKOnly + vbExclamation, 修改密码- 30 -Me.HideEnd IfEnd Sub当两次输入密码一致时,数据库中的记录将更新。5353 学籍管理模块的创建学籍管理模块的创建学籍信息管理模块主要实现如下功能: 添加学籍信息 修改学籍信息 查询学籍信息1.添加学籍信息窗体的创建添加学籍信息窗体的创建 选择“学籍管理|添加学籍信息”菜单,将出现如下的窗体;
44、- 31 - 图5-7 添加学籍信息窗体 在窗体上放置多个文本框和下拉式文本框,用来输入学籍信息。两个按钮用来确定是否添加学籍信息。多个标签用来提示文本框中需要输入的内容。 在载入窗体时,程序将自动在两个下拉式文本框中添加内容,这样可以规范化输入内容,代码如下:Private Sub Form_Load()Dim mrc As ADODB.RecordsetDim txtSQL As StringDim MsgText As StringDim i As Integer添加列表框内容comboSex.AddItem 男comboSex.AddItem 女txtSQL = select * fr
45、om class_Info Set mrc = ExecuteSQL(txtSQL, MsgText)添加内容到列表框中For i = 1 To mrc.RecordCount- 32 -comboClassNo.AddItem mrc.Fields(0)mrc.MoveNextNext imrc.CloseEnd Sub在班号选择的下拉式文本框中,将出现所有班级,用户不用输入内容。用户输入内容完毕后,单击按钮cmdOK将触发Click事件,代码如下:Private Sub cmdOK_Click()定义数据集对象Dim mrc As ADODB.Recordset定义字符串变量,表示查询语句
46、Dim txtSQL As String定义字符串变量,返回查询信息Dim MsgText As String判断是否输入学号If Not Testtxt(txtSID.Text) ThenMsgBox 请输入学号!, vbOKOnly + vbExclamation, 警告txtSID.SetFocusExit SubEnd If判断是否输入姓名If Not Testtxt(txtName.Text) ThenMsgBox 请输入姓名!, vbOKOnly + vbExclamation, 警告txtName.SetFocusExit SubEnd If判断是否选择性别If Not Test
47、txt(comboSex.Text) ThenMsgBox 请选择性别!, vbOKOnly + vbExclamation, 警告comboSex.SetFocusExit Sub- 33 -End If判断是否输入出生日期If Not Testtxt(txtBorndate.Text) ThenMsgBox 请输入出生日期!, vbOKOnly + vbExclamation, 警告txtBorndate.SetFocusExit SubEnd If判断是否输入班号If Not Testtxt(comboClassNo.Text) ThenMsgBox 请选择班号!, vbOKOnly +
48、 vbExclamation, 警告comboClassNo.SetFocusExit SubEnd If判断是否输入联系电话If Not Testtxt(txtTel.Text) ThenMsgBox 请输入联系电话!, vbOKOnly + vbExclamation, 警告txtTel.SetFocusExit SubEnd If判断是否输入入校日期If Not Testtxt(txtRudate.Text) ThenMsgBox 请输入入校日期!, vbOKOnly + vbExclamation, 警告txtRudate.SetFocusExit SubEnd If判断是否输入家庭地
49、址If Not Testtxt(txtAddress.Text) ThenMsgBox 请输入家庭住址!, vbOKOnly + vbExclamation, 警告txtAddress.SetFocusExit SubEnd If- 34 -判断输入学号是否为数字If Not IsNumeric(Trim(txtSID.Text) ThenMsgBox 请输入数字!, vbOKOnly + vbExclamation, 警告Exit SubtxtSID.SetFocusEnd If判断是否有重复记录txtSQL = select * from student_Info where studen
50、t_ID = & Trim(txtSID.Text) & Set mrc = ExecuteSQL(txtSQL, MsgText)If mrc.EOF = False ThenMsgBox 学号重复,请重新输入!, vbOKOnly + vbExclamation, 警告mrc.ClosetxtSID.SetFocusElsemrc.CloseIf Not IsDate(txtBorndate.Text) ThenMsgBox 出生时间应输入日期格式(yyyy-mm-dd)!, vbOKOnly + vbExclamation, 警告txtBorndate.SetFocusE
51、lsetxtBorndate = Format(txtBorndate, yyyy-mm-dd)If Not IsDate(txtRudate.Text) ThenMsgBox 入校时间应输入日期格式(yyyy-mm-dd)!, vbOKOnly + vbExclamation, 警告txtRudate.SetFocusElsetxtRudate = Format(txtRudate, yyyy-mm-dd)txtSQL = select * from student_InfoSet mrc = ExecuteSQL(txtSQL, MsgText)添加记录mrc.AddNew给每个字段赋值m
52、rc.Fields(0) = Trim(txtSID.Text)- 35 -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
53、(8) = Trim(txtComment.Text)mrc.UpdateMsgBox 添加学籍信息成功!, vbOKOnly + vbExclamation, 警告mrc.CloseMe.HideEnd IfEnd IfEnd If 程序首先对是否输入内容进行判断,然后进行格式判断,使用了下面两个函数 :IsDate(txtBorndate.Text) IsDate(txtRudate.Text)。 判断是否有重复记录是很重要的,否则数据库中将发生错误。 单击按钮cmdCancel取消添加学籍信息,代码如下:Private Sub Command2_Click()卸载窗体Unload MeE
54、nd Sub 2.修改学籍信息窗体的创建修改学籍信息窗体的创建 选择“学籍管理|修改学籍信息”菜单,将出现如下所示的窗体。 - 36 -图5-8 修改学籍信息窗体 第一排按钮用来方便地浏览数据库中各条记录,第二排按钮用来修改记录。由于记录集为整个窗体公用,需要将记录集对象定义为全局变量,代码如下:定义数据集对象Dim mrc As ADODB.Recordset定义书签,用来记载当前记录位置Dim myBookmark As Variant判断是否修改记录Dim mcclean As Boolean程序在窗体载入时自动加入各条记录,代码如下:Private Sub Form_Load()Dim
55、 txtSQL As StringDim MsgText As StringtxtSQL = select * from student_Info 执行查询操作- 37 -Set mrc = ExecuteSQL(txtSQL, MsgText)mrc.MoveFirstCall viewDatamcbookmark = mrc.Bookmarkmcclean = TrueEnd Sub由于程序中各处需要显示数据,定义函数viewdata,代码如下:Public Sub viewData()txtSID.Text = mrc.Fields(0)txtName.Text = mrc.Fields
56、(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)End Sub单击“第一条记录”按钮,将显示第一条记录,代码如下:Private Sub
57、 firstCommand_Click()移到数据集的第一条记录mrc.MoveFirst调用显示数据的函数Call viewDataEnd Sub单击“最后一条记录”按钮,将显示最后一条记录,代码如下:Private Sub lastCommand_Click()mrc.MoveLastCall viewDataEnd Sub单击“上一条记录”按钮,将显示上一条记录,代码如下:- 38 -Private Sub previousCommand_Click()mrc.MovePrevious判断是否是起始位置If mrc.BOF Thenmrc.MoveLastEnd IfCall viewD
58、ataEnd Sub单击“下一条记录”按钮,将显示下一条记录,代码如下:Private Sub nextCommand_Click()mrc.MoveNext判断是否到末尾位置If mrc.EOF Thenmrc.MoveFirstEnd IfCall viewDataEnd Sub单击“修改记录”按钮,将进入到修改状态,各个文本框将有效。这是移动记录的按钮将失效,可以避免错误操作,代码如下:Private Sub editCommand_Click()mcclean = FalseFrame2.Enabled = False使移动记录按钮失效firstCommand.Enabled = Fa
59、lsepreviousCommand.Enabled = FalsenextCommand.Enabled = FalselastCommand.Enabled = False使各个文本框有效txtSID.Enabled = TruetxtName.Enabled = TruecomboSex.Enabled = TruetxtBorndate.Enabled = True- 39 -comboClassNo.Enabled = TruetxtRudate.Enabled = TruetxtTel.Enabled = TruetxtAddress.Enabled = TruetxtCommen
60、t.Enabled = True记下当前记录位置myBookmark = mrc.BookmarkEnd Sub修改完毕后,单击“更新记录”按钮,将触发Click事件,代码如下:Private Sub updateCommand_Click()Dim txtSQL As StringDim MsgText As StringDim mrcc As ADODB.Recordset If mcclean ThenMsgBox 请先修改学籍信息, vbOKOnly + vbExclamation, 警告Exit SubEnd If If Not Testtxt(txtSID.Text) ThenMsgBox 请输入学号!, vbOKOnly + vbExclamation, 警告txt
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《吉加·维尔托夫》课件
- 2025年中考英语一轮教材复习 九年级(上) Unit 3-1
- 旅游概论(上海旅游高等专科学校)知到智慧树答案
- 课件:《躺在波浪上看书》
- 居民服务公司养老产业项目可行性研究报告
- 《围绝经期综合征》课件
- 杜甫《登高》精美公开课-课件
- 《临床危急值解析》课件
- (部编版八年级《政治》下册课件)第1课时-公民权利的保障书
- 《术前讨论制度》课件
- 施工组织设计-汽研中心风洞试验室工程
- 突发环境事件应急预案评审会汇报课件-(模板)
- 医疗投诉与纠纷处理管理制度
- 国开电大本科《理工英语3》机考真题(第001套)
- 楚雄彝族自治州楚雄市2022-2023学年七年级上学期期末数学试题
- JT∕T1180.4-2018交通运输企业安全生产标准化建设基本规范第4部分:道路普货运输
- 数据安全事件的溯源与责任追究
- 自然辩证法概论智慧树知到期末考试答案2024年
- 全国大学英语六级词汇表
- 苏教译林版五年级上学期英语第七单元Unit7《At weekends》测试卷(含答案解析)
- 水利综合项目跟踪审计专项方案
评论
0/150
提交评论