湖南广播电视大学计算机信息管理专业数据库应用课程设计报告销售信息系统学号:姓名:指导教师:设计完成日期:一、选题说明及需求介绍学生信息管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,对学生来说也可以轻松的查阅自己在校的成绩以及信息等。
通过调查,要求系统需要有以下功能:⑴要求有良好的人机界面;⑵较好的权限管理;⑶原始数据修改简单方便,支持多条件修改;⑷方便的数据查询,支持多条件查询;⑸相应的权限下,删除数据方便简单,数据稳定性好;⑹数据计算自动完成,尽量减少人工干预;我们设计实现的学生信息管理系统,采用计算机对学生信息进行管理,进一步提高办学效益和现代化水平.帮助广大教师提高工作效率,实现学生信息管理工作流程的系统化、规范化和自动化。
二、数据库设计说明系统的需求说明在上面已有介绍,下面我们进入数据库设计中的概念设计、逻辑设计阶段和实现阶段。
1.概念设计在这个学生信息管理系统中,学生的成绩是由任课教师按照课程给出的,学生、课程、教师组成了这个系统的三个实体。
再分析三个实体之间的联系。
首先,这三个实体不是一个统一体,学生成绩与教师没有内在联系,教师必须通过课程实体才能与学生建立联系,因而先不考虑。
课程与学生这两个实体是多对多联系;一位学生要学习多门课程,一门课程有多位学生共同学习。
而学习成绩是这两个实体“学生”和“成绩”共有的属性,应填在二者的联系“学习”边。
因为成绩既不是学生独有的,也不是课程独有的。
教师与课程这两个实体之间,是一对多联系;一位教师可以教多门课程,而一门课程对于学生成绩来说只能有一位教师。
据此分析,得到系统的ER图如图一所示。
2.图二 班级管理业务流程图图三 档案管理业务流程图图四课程管理业务流程图图五成绩管理业务流程图3.数据流程分析图六 学生成绩管理系统0层数据流程图图七 学生成绩管理系统1层数据流程图4.逻辑设计数据库采用了Microsoft 推出的Access 数据库,这是微软集成到Office 中的一个桌查询 统计分析面数据库,能够快速方便的和Office的其他套件综合使用。
由于Access具有显著的简易性和有效性,大量的桌面数据库系统都采用Access作为后台数据库。
使用Access的好处还在于,如果你的系统扩展到Client/Server模式的时候,可以使用Microsoft的数据库服务器软件SQL Server,此时,程序只需要简单的修改一下链接(ADO的数据源)就可以,这样,为程序的平滑扩展提供了非常有力的条件。
根据ER图转换成基本表的思想,即每个实体转换成一个基本表,多对多的联系转换成基本表,而1对多的联系根据实际需要可以转换或不转换为基本表,按照图一所示的ER 图,该系统的基本表为八个,分别为:班级课程表(班级编号,课程名)班级表(班级编号,班级名称,指导员姓名,备注信息)课程表(课程名,备注)奖惩表(奖惩名称,备注信息)学生奖惩表(奖惩编号,奖惩学生学号,奖惩日期,奖惩名称)成绩表(成绩号,考试期号,学生班号,学生编号,考试课程,考试分数)学生表(学号,姓名,性别,出生日期,学生编号,联系电话)用户表(用户名称,用户密码,创建日期)5.建立数据库和基本表在ACCESS中建立空的数据库“学生信息管理系统”,然后建立如上所述的基本表,各个表的设计视图如图九至图十六所示。
图八学生信息管理系统ER图图九班级表设计视图图十成绩设计视图图十一班级课程表设计视图图十二奖惩表设计视图图十三课程表设计视图图十四学生表设计视图图十五学生奖惩表图十六用户表设计视图6.定义基本表之间的关系根据前面的分析,定义基本表之间的关系如图十七所示。
图十七基本表之间的关系三、系统的功能划分根据前面的说明和分析,我们希望只有经过授权的用户才能使用该系统,也就是说只有经过系统验证的用户才能进行相关操作,并且系统能对基本数据进行插入、删除、修改和查询等操作,对关联数据也能进行相应的处理,本系统主要提供方便高效的管理功能,该实现以下一些基本功能:1.系统管理模块:维护系统的正常运行和安全性设置,包括添加用户、修改密码、删除用户等等。
2.班级管理模块:实现对全校班级的管理工作,包括:班级游览、班级添加、班级修改等,这三个功能模块各自独立,完成学校的全部班级的管理。
3.学生学籍管理模块:实现对学生的个人信息的管理工作,包括学籍添加、学籍查询、学籍修改等功能,从而方便学校管理部门对学校的基本情况的快速查询和了解。
4.课程管理模块:该模块对各个班级的课程进行设置,并可在其中设置各门课程的教材选用情况,方便了学校教材管理部门和教务处的教学管理人员的工作。
该模块包括基本课程设置和班级课程设置两个模块。
5.成绩管理模块:检验学生学习情况的一个主要手段,本模块包括考试类型设置,共有期中考试和期未考试两种类型,还设置了成绩添加、成绩查询、成绩浏览、成绩修改等功能模块。
6.奖惩信息管理模块:奖惩信息是用来督促学习学习活动的一种手段,包括奖惩信息的添加和修改。
7.个人信息查询模块:用于学生个人信息的查询,分为奖惩信息查询和成绩查询两个模块。
8.退出模块:此模块完成程序的退出。
据此,系统的功能模块设计如图十八所示。
图十八系统模块功能图四、实现过程及完成效果介绍1.实现过程简要说明Visual Basic是一种可视化的、面对对象和调用事件驱动方式的结构化高级程序设计,可用于开发Windows环境下的种类应用程序。
它简单易学、效率高,且功能强大。
在Visual Basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,可以高效、快速地开发出Windows环境下功能强大、图形界面丰富的应用软件系统。
实现系统时,首先实现基本数据处理的功能,例如学生数据的增加、删除和修改都是通过窗体向导完成的,设计时插入数据和修改数据通过下级窗体完成。
关联数据处理比基本数据处理稍复杂,例如班级添加学生,首先由用户选择班级,然后再选择需要添加的学生,不要由用户去输入数据,以免引起数据的不一致性。
当各个功能模块完成后,实现主窗体,将功能集中,然后再设计登录窗体,只允许注册用户进入系统。
2.系统实现效果1.系统登录界面本界面的主要功能是为了对系统进行安全性管理,本系统的用户名和密码保存在USE表中,本系统根据不同的用户而设置了不同的权限,可以用ID;PWD(大写)为用户名和密码来登陆本系统。
如图十九所示。
图十九系统登录窗体2.系统主界面本模块是本系统的应用界面,在本界面上集成了本系统的所有功能,共有7个功能菜单,从而实现了本系统从用户管理、班级管理、学籍管理、课程管理、成绩管理、奖惩管理、个人信息查询等系统功能,同时,在系统管理模块中可以完成对本系统的安全性管理。
如图二十所示。
图二十系统化主窗体3.用户管理模块本模块是本系统的安全性设置模块,实现了对用户帐户信息管理功能。
如图二十一所示。
图二十一用户管理界面4.班级信息管理模块班级信息管理模块用于实现班级信息的添加、删除、修改的功能。
包括班级编号,班级名称,导员姓名,备注信息。
当对其中某个属性进行操作时,对其基本的信息进行填写完整。
否则会出现提示信息。
当班级编号,班级名称,导员姓名为空时会自动的出现提示信息,提示某个属性列必须要填写,否则显示操作成功。
如图二十二所示。
图二十二班级信息管理界面学籍信息管理模块是对学生的个人信息进行统计。
实现该模块的添加、查询、修改、删除功能。
例如点击添加时,系统弹出如图1-2所示的界面,当点击界面下方面的控件时,其所对应的位置会显示为输入形式,对信息进行输入。
输入完成后,点击添加时,系统会自动对信息进行验证,如果学号以存在时,则提示学号存在无法添加;如果除备注信息中有信息落填时,会提示某个属性列没有填写,否则提示信息添加成功,并对添加后的信息进行显示。
如图二十三所示。
图二十三学籍信息管理界面6.课程信息管理模块图二十四课程信息管理界面图二十五 成绩信息管理界面8.奖惩信息管理模块9.个人信息查询模块图二十六 奖惩信息管理界面图二十七个人信息查询界面五、总结在本系统的开发过程中,由于本人是初次开发软件,在知识、经验方面都存在着不足。
因此,该系统必然会存在一些缺陷和不足。
因为对学生管理的整个流程不够熟悉,在需求分析时未能做到完全满足用户的需求。
虽然网络在学生管理系统中的应用不是很多,但是未来的发展方向,在本次开发过程由于硬件的限制,未能实现网络功能,因此在以后的系统更新过程中可能会造成一些不必要的数据损失。
通过开发这个系统,我掌握了项目的基本开发过程,了解了的基本知识巩固了我对Visual Basic的学习,但在这次设计中的最大收获并不是掌握这几门开发工具的应用,而是学会了设计系统的思维方法,以及与同学们之间相互帮助的精神。
六、致谢七、参考资料1周佩德.数据库原理及应用.电子工业出版社2 刘炳文等.VISUAL BASIC程序设计——数据库篇,19993李光明.Visual Basic编程实例大制作.冶金工业出版社4 李红等编著.管理信息系统开发与应用.电子工业出版社,20035 何桂英.数据库应用课程设计指导书.中央广播电视大学出版社.20056 康博工作室.张红军.Visual Basic中文版高级应用与开发指南.人民邮电出版社,20017 林立军,程斌,翁迪恩.Visual Basic 数据库开发指南.西安电子科技大学出版社,2000 8宋伟,吴建国.中文Visual Basic编程基础.北京,清华大学出版社.2000目录一、选题说明及需求介绍二、数据库设计说明2.1概念设计2.2业务流程分析2.3数据流程分析2.4逻辑设计2.5建立数据库和基本表2.6定义基本表之间的关系三、系统的功能划分四、实现过程及完成效果介绍4.1系统登录界面4.2系统主界面4.3用户管理模块4.4班级信息管理模块4.5 学籍信息管理模块4.6课程信息管理模块4.7成绩信息管理模块4.8奖惩信息管理模块4.9个人信息管理模块五、总结六、致谢七、参考资料8.源程序:8.1系统登录界面:Option ExplicitPrivate Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpbuffer As String, nSize As Long) As LongPublic OK As BooleanDim txtSQL As StringDim mrc As ADODB.RecordsetDim MsgText As StringDim miCount As IntegerPrivate Sub Form_Load()Dim i As Integeri = 0txtSQL = "select * from user_Form"Set mrc = ExecuteSQL(txtSQL, MsgText)With txtUserNameDo While Not mrc.EOFi = i + 1.AddItem Trim(mrc!user_ID)mrc.MoveNextLoop.ListIndex = i - 1End Withmrc.CloseOK = FalsemiCount = 0End SubPrivate Sub cmdCancel_Click()OK = FalseMe.HideEnd SubPrivate Sub cmdOK_Click()txtSQL = "select * from user_Form where user_ID = '" & txtUserName.Text & "'"Set mrc = ExecuteSQL(txtSQL, MsgText)If mrc.EOF = True ThenMsgBox "没有这个用户,请重新输入用户名!", vbOKOnly + vbExclamation, "警告"txtUserName.SetFocusElseIf Trim(mrc.Fields(1)) = Trim(txtPassword.Text) ThenOK = Truemrc.CloseMe.HideUserName = Trim(txtUserName.Text)ElseMsgBox "输入密码不正确,请重新输入!", vbOKOnly + vbExclamation, "警告"txtPassword.SetFocustxtPassword.Text = ""End IfEnd IfmiCount = miCount + 1Me.HideEnd IfExit SubEnd SubPrivate Sub txtPassword_KeyDown(KeyCode As Integer, Shift As Integer) EnterToTab KeyCodeEnd SubPrivate Sub txtPassword_KeyPress(KeyAscii As Integer)If KeyAscii = 13 ThenCall cmdOK_ClickEnd IfEnd SubPrivate Sub txtUserName_Click()txtPassword.Text = ""End SubPrivate Sub txtUserName_KeyDown(KeyCode As Integer, Shift As Integer) EnterToTab KeyCodeEnd Sub8.2系统主界面:Dim i As LongPrivate Sub Form_Load()Label1.ForeColor = &H8000000ELabel1.FontSize = 12Label1.AutoSize = Truei = Image2.WidthEnd SubPrivate Sub Form_Resize()Image1.Top = 0Image1.Left = 0Image1.Height = Me.HeightImage1.Width = Me.WidthImage2.Top = Me.Height - Image2.HeightImage2.Left = Me.Width - Image2.WidthLabel1.Top = Me.Height - Label1.Height - 100End SubPrivate Sub Timer1_Timer()i = i + 50Label1.Left = Me.Width - iIf i > Me.Width + Label1.Width Theni = Image2.WidthEnd IfEnd Sub8.3用户管理模块:Dim mrc As ADODB.RecordsetDim MsgText As StringPrivate Sub Command1_Click()Dim txtSQL As StringMsgBox "用户名称不能为空!", vbOKOnly, "提示"Text1(0).SetFocusExit SubEnd IfIf Text1(1) = "" ThenMsgBox "用户密码不能为空!", vbOKOnly, "提示"Text1(1).SetFocusExit SubElseIf Text1(1) <> Text1(2) ThenMsgBox "两次密码输入不同!", vbOKOnly, "提示"Text1(1) = ""Text1(2) = ""Text1(1).SetFocusExit SubEnd IfEnd IftxtSQL = "select * from user_Form where user_ID='" & Trim(Text1(0)) & "'"Set mrc = ExecuteSQL(txtSQL, MsgText)If mrc.EOF = False ThenMsgBox "此用户名已经存在!", vbOKOnly, "警告"Text1(0).SetFocusExit SubEnd Ifmrc.ClosetxtSQL = "select * from user_Form"Set mrc = ExecuteSQL(txtSQL, MsgText)mrc.AddNewmrc.Fields(0) = Trim(Text1(0))mrc.Fields(1) = Trim(Text1(1))mrc.Fields(2) = Nowmrc.Updatemrc.CloseFor i = 0 To 2Text1(i) = ""NextMsgBox "用户信息添加成功!", vbOKOnly, "提示"ListappEnd SubPrivate Sub Command2_Click()Text1(0) = ""Text1(1) = ""Text1(2) = ""End SubPrivate Sub Command3_Click()Dim txtSQL As StringIf Text1(3) = "" ThenMsgBox "请你选择用户名称!", vbOKOnly, "提示"List1.SetFocusExit SubEnd IfIf Text1(4) = "" ThenMsgBox "修改密码要旧密码!", vbOKOnly, "警告"Text1(4).SetFocusExit SubEnd IfIf Text1(5) = "" ThenMsgBox "新的密码不能为空!", vbOKOnly, "提示"Text1(5).SetFocusExit SubElseIf Text1(5) <> Text1(6) ThenMsgBox "两次密码输入不同!", vbOKOnly, "提示"Text1(5) = ""Text1(6) = ""Text1(5).SetFocusExit SubEnd IfEnd IftxtSQL = "select * from user_Form where user_ID='" & Trim(Text1(3)) & "'and user_PWD='" & Trim(Text1(4)) & "'"Set mrc = ExecuteSQL(txtSQL, MsgText)If mrc.EOF = False ThentxtSQL = "delete from user_Form where user_ID='" & Trim(Text1(3)) & "'"ElseMsgBox "用户密码输入错误!", vbOKOnly, "警告"Text1(4).SetFocusExit SubEnd IfSet mrc = ExecuteSQL(txtSQL, MsgText)txtSQL = "select * from user_Form"Set mrc = ExecuteSQL(txtSQL, MsgText)mrc.AddNewmrc.Fields(0) = Trim(Text1(3))mrc.Fields(1) = Trim(Text1(5))mrc.Fields(2) = Nowmrc.Updatemrc.CloseFor i = 3 To 6Text1(i) = ""NextMsgBox "用户信息修改成功!", vbOKOnly, "提示"End SubPrivate Sub Command4_Click()Text1(3) = ""Text1(4) = ""Text1(5) = ""Text1(6) = ""End SubPrivate Sub Command5_Click()Dim txtSQL As StringIf Text1(7) = "" ThenMsgBox "请你选择用户名称!", vbOKOnly, "提示"List1.SetFocusExit SubElseIf Text1(7) = UserName ThenMsgBox "不可以删除正在使用的用户!", vbOKOnly, "警告"Text1(7) = ""Text1(8) = ""List1.SetFocusExit SubEnd IfEnd IfIf Text1(8) = "" ThenMsgBox "删除用户需要密码!", vbOKOnly, "警告"Text1(8).SetFocusExit SubEnd IftxtSQL = "select * from user_Form where user_ID='" & Trim(Text1(7)) & "'and user_PWD='" & Trim(Text1(8)) & "'"Set mrc = ExecuteSQL(txtSQL, MsgText)If mrc.EOF = False ThentxtSQL = "delete from user_Form where user_ID='" & Trim(Text1(7)) & "'"ElseMsgBox "用户密码输入错误!", vbOKOnly, "警告"Text1(8).SetFocusExit SubEnd IfSet mrc = ExecuteSQL(txtSQL, MsgText)Text1(7) = ""Text1(8) = ""MsgBox "用户信息已经删除!", vbOKOnly, "提示"ListappEnd SubPrivate Sub Command6_Click()Text1(7) = ""Text1(8) = ""End SubPrivate Sub Form_Load()8.4班级信息管理模块:Dim mrc As ADODB.RecordsetDim MsgText As StringDim tSQL As StringPrivate Sub Command1_Click()If Text1(0) = "" ThenMsgBox "班级编号不能为空!", vbOKOnly, "提示"Text1(0).SetFocusExit SubEnd IfIf Text1(1) = "" ThenMsgBox "班级名称不能为空!", vbOKOnly, "提示"Text1(1).SetFocusExit SubEnd IfIf Text1(2) = "" ThenMsgBox "导员姓名不能为空!", vbOKOnly, "提示"Text1(2).SetFocusExit SubEnd IftxtSQL = "select * from class_Form where class_NO='" & Trim(Text1(0)) & "'" Set mrc = ExecuteSQL(txtSQL, MsgText)If mrc.EOF = False ThenMsgBox "此班级编号已存在!", vbOKOnly, "警告"Text1(0).SetFocusExit SubEnd Ifmrc.ClosetxtSQL = "select * from class_Form"Set mrc = ExecuteSQL(txtSQL, MsgText)mrc.AddNewmrc.Fields(0) = Trim(Text1(0))mrc.Fields(1) = Trim(Text1(1))mrc.Fields(2) = Trim(Text1(2))mrc.Fields(3) = Trim(Text1(3))mrc.Updatemrc.CloseFor i = 0 To 3Text1(i) = ""NextMsgBox "班级信息添加成功!", vbOKOnly, "提示"ShowDataEnd SubPrivate Sub Command2_Click()For i = 0 To 3Text1(i) = ""NextEnd SubPrivate Sub Command3_Click()If Text1(5) = "" ThenMsgBox "班级名称不能为空!", vbOKOnly, "提示"Text1(5).SetFocusExit SubEnd IfIf Text1(6) = "" ThenMsgBox "导员姓名不能为空!", vbOKOnly, "提示"Text1(6).SetFocusExit SubEnd IftxtSQL = "delete from class_Form where class_NO='" & Trim(Text1(4)) & "'" Set mrc = ExecuteSQL(txtSQL, MsgText)txtSQL = "select * from class_Form"Set mrc = ExecuteSQL(txtSQL, MsgText)mrc.AddNewmrc.Fields(0) = Trim(Text1(4))mrc.Fields(1) = Trim(Text1(5))mrc.Fields(2) = Trim(Text1(6))mrc.Fields(3) = Trim(Text1(7))mrc.Updatemrc.CloseFor i = 4 To 7Text1(i) = ""NextMsgBox "班级信息修改成功!", vbOKOnly, "提示"ShowDataEnd SubPrivate Sub Command4_Click()For i = 4 To 7Text1(i) = ""NextEnd SubPrivate Sub Command5_Click()txtSQL = "delete from class_Form where class_NO='" & Trim(Text1(8)) & "'" Set mrc = ExecuteSQL(txtSQL, MsgText)For i = 8 To 11Text1(i) = ""NextMsgBox "班级信息以经删除!", vbOKOnly, "警告"ShowDataEnd SubPrivate Sub Command6_Click()For i = 8 To 11Text1(i) = ""NextEnd SubPrivate Sub Form_Load()Me.Caption = "班级信息->添加"Picture1(1).Top = Picture1(0).TopPicture1(1).Left = Picture1(0).LeftPicture1(2).Top = Picture1(0).TopPicture1(2).Left = Picture1(0).LeftShowDataFor i = 0 To 2Label2(i).BackColor = &HE0E0E0Picture1(i).Visible = FalseNextLabel2(0).BackColor = &HFFFFFFPicture1(0).Visible = TrueEnd SubPrivate Sub Form_Resize()dColor.ZOrder 1End SubPrivate Sub Label2_Click(Index As Integer)Me.Caption = "班级信息"Me.Caption = Me.Caption & "->" & Trim(Label2(Index).Caption) For i = 0 To 2Label2(i).BackColor = &HE0E0E0Picture1(i).Visible = FalseNextLabel2(Index).BackColor = &HFFFFFFPicture1(Index).Visible = TrueFor i = 0 To 11Text1(i) = ""NextCommand3.Enabled = FalseCommand5.Enabled = FalseEnd SubPrivate Sub ShowData()Dim txSQL As StringDim mrcc As ADODB.RecordsettxSQL = "select * from class_Form"Set mrcc = ExecuteSQL(txSQL, MsgText)With MSFlexGrid1.ColWidth(0) = 1200.ColWidth(1) = 1200.ColWidth(2) = 1200.ColWidth(3) = 6000.TextMatrix(0, 0) = "班级编号".TextMatrix(0, 1) = "班级名称".TextMatrix(0, 2) = "导员姓名".TextMatrix(0, 3) = "备注信息".Rows = 1Do While Not mrcc.EOF.Rows = .Rows + 1For i = 0 To mrcc.Fields.Count - 1.TextMatrix(.Rows - 1, i) = mrcc.Fields(i) & ""Next imrcc.MoveNextLoopEnd Withmrcc.CloseEnd SubPrivate Sub MSFlexGrid1_Click()If Picture1(1).Visible = True ThenText1(4) = Trim(MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 0)) Text1(5) = Trim(MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 1)) Text1(6) = Trim(MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 2)) Text1(7) = Trim(MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 3)) Command3.Enabled = TrueEnd IfIf Picture1(2).Visible = True ThenText1(8) = Trim(MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 0)) Text1(9) = Trim(MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 1)) Text1(10) = Trim(MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 2)) Text1(11) = Trim(MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 3))Command5.Enabled = TrueEnd IfEnd SubPrivate Sub Text1_Change(Index As Integer)If Index = 4 ThentSQL = "select * from class_Form where class_NO='" & Trim(Text1(Index)) & "'"Set mrc = ExecuteSQL(tSQL, MsgText)If mrc.EOF = False ThenText1(5) = mrc.Fields(1)Text1(6) = mrc.Fields(2)Text1(7) = mrc.Fields(3)Command3.Enabled = TrueExit SubElseText1(5) = ""Text1(6) = ""Text1(7) = ""Command3.Enabled = FalseEnd Ifmrc.CloseEnd IfIf Index = 8 ThentSQL = "select * from class_Form where class_NO='" & Trim(Text1(Index)) & "'"Set mrc = ExecuteSQL(tSQL, MsgText)If mrc.EOF = False ThenText1(9) = mrc.Fields(1)Text1(10) = mrc.Fields(2)Text1(11) = mrc.Fields(3)Command5.Enabled = TrueExit SubElseText1(9) = ""Text1(10) = ""Text1(11) = ""Command5.Enabled = FalseEnd Ifmrc.CloseEnd IfEnd SubPrivate Sub Text1_GotFocus(Index As Integer)Text1(Index).SelStart = 0Text1(Index).SelLength = Len(Text1(Index))End SubPrivate Sub Text1_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer) EnterToTab KeyCodeEnd Sub8.5学籍信息管理模块:Private Sub claiMenu_Click()frmclai.ShowEnd SubPrivate Sub couiMenu_Click()frmcoui.ShowEnd SubPrivate Sub cusiMenu_Click()frmcusi.ShowEnd SubPrivate Sub MDIForm_Load()dColor.ShowEnd SubPrivate Sub MDIForm_Resize()If Me.Height > 1100 ThendColor.Height = Me.Height - 1100End IfIf Me.Width > 180 ThendColor.Width = Me.Width - 180End IfEnd SubPrivate Sub prpiMenu_Click()frmprpi.ShowEnd SubPrivate Sub scoiMenu_Click()frmscoi.ShowEnd SubPrivate Sub stsiMenu_Click()frmstsi.ShowEnd SubPrivate Sub sumiMenu_Click()frmsumi.ShowEnd SubDim mrc As ADODB.RecordsetDim MsgText As StringDim tSQL As StringPrivate Sub Combo1_Click()Text1(4) = Combo1.TextIf Label1(3).BackColor <>&HFFFFFF ThenIf Label2(4).Caption = Combo1.Text ThenCombo1.BackColor = &HE0E0E0ElseCombo1.BackColor = &HFFFFFFEnd IfEnd IfEnd SubPrivate Sub Command1_Click()Dim txtSQL As StringFor i = 0 To 7If i <> 4 ThenIf Text1(i) = Label2(i).Caption ThenMsgBox "请" & Label2(i).Caption & "!", vbOKOnly, "提示" Text1(i).SetFocusExit SubEnd IfElseIf Text1(i) = Label2(i).Caption ThenMsgBox "请" & Label2(i).Caption & "!", vbOKOnly, "提示"Combo1.SetFocusExit SubEnd IfEnd IfNextIf IsDate(Text1(3)) = False ThenMsgBox "出生日期应为日期格式(yyyy-mm-dd)!", vbOKOnly, "警告"Text1(3).SetFocusExit SubEnd IfIf IsDate(Text1(6)) = False ThenMsgBox "入学日期应为日期格式(yyyy-mm-dd)!", vbOKOnly, "警告"Text1(6).SetFocusExit SubEnd IftxtSQL = "select * from student_Form where student_NO='" & Trim(Text1(0)) & "'" Set mrc = ExecuteSQL(txtSQL, MsgText)If mrc.EOF = False ThenMsgBox "学号不能重复!", vbOKOnly, "警告"Text1(0).SetFocusExit SubEnd Ifmrc.ClosetxtSQL = "select * from student_Form"Set mrc = ExecuteSQL(txtSQL, MsgText)mrc.AddNewmrc.Fields(0) = Trim(Text1(0))mrc.Fields(1) = Trim(Text1(1))mrc.Fields(2) = Trim(Text1(2))mrc.Fields(3) = Trim(Text1(3))mrc.Fields(4) = Trim(Text1(4))mrc.Fields(5) = Trim(Text1(5))mrc.Fields(6) = Trim(Text1(6))mrc.Fields(7) = Trim(Text1(7))If Text1(8) = Label2(8).Caption Thenmrc.Fields(8) = ""Elsemrc.Fields(8) = Trim(Text1(8))End Ifmrc.Updatemrc.CloseMsgBox "学籍信息添加成功!", vbOKOnly, "提示"With MSFlexGrid1.Rows = .Rows + 1.TextMatrix(.Rows - 1, 0) = Trim(Text1(0)).TextMatrix(.Rows - 1, 1) = Trim(Text1(1)).TextMatrix(.Rows - 1, 2) = Trim(Text1(2)).TextMatrix(.Rows - 1, 3) = Trim(Text1(3)).TextMatrix(.Rows - 1, 4) = Trim(Text1(4)).TextMatrix(.Rows - 1, 5) = Trim(Text1(5)).TextMatrix(.Rows - 1, 6) = Trim(Text1(6)).TextMatrix(.Rows - 1, 7) = Trim(Text1(7))If Text1(8) <> Label2(8).Caption Then.TextMatrix(.Rows - 1, 8) = Trim(Text1(8))End IfEnd WithMSFlexGrid1.TopRow = MSFlexGrid1.Rows - 1TextDcolorEnd SubPrivate Sub Command2_Click()Dim j As IntegerDim txtSQL As StringIf Text1(5) <> Label2(5).Caption ThenIf IsDate(Text1(5)) = False ThenMsgBox "起始日期应为日期格式(yyyy-mm-dd)!", vbOKOnly, "警告"Text1(5).SetFocusExit SubElseText1(5) = Format(Text1(5), "yyyy-mm-dd")End IfEnd IfIf Text1(6) <> Label2(6).Caption ThenIf IsDate(Text1(6)) = False ThenMsgBox "起始日期应为日期格式(yyyy-mm-dd)!", vbOKOnly, "警告"Text1(6).SetFocusExit SubElseText1(6) = Format(Text1(6), "yyyy-mm-dd")End IfEnd IftxtSQL = "select * from student_Form"If Text1(0) <> Label2(0).Caption ThentxtSQL = txtSQL & " where student_NO='" & Trim(Text1(0)) & "'"End IfIf Text1(1) <> Label2(1).Caption ThenIf txtSQL = "select * from student_Form" ThentxtSQL = txtSQL & " where student_Name='" & Trim(Text1(1)) & "'"ElsetxtSQL = txtSQL & " and student_Name='" & Trim(Text1(1)) & "'"End IfEnd IfIf Text1(4) <> Label2(4).Caption ThenIf txtSQL = "select * from student_Form" ThentxtSQL = txtSQL & " where student_Cla='" & Trim(Text1(4)) & "'"ElsetxtSQL = txtSQL & " and student_Cla='" & Trim(Text1(4)) & "'"End IfEnd IfIf Text1(5) <> Label2(5).Caption And Text1(6) <> Label2(6).Caption Then If txtSQL = "select * from student_Form" ThentxtSQL = txtSQL & " where Format(student_Esd,'yyyy-mm-dd') >='" & Trim(Text1(5)) & "'and Format(student_Esd,'yyyy-mm-dd') <='" & Trim(Text1(6)) & "'"ElsetxtSQL = txtSQL & " and Format(student_Esd,'yyyy-mm-dd') >='" & Trim(Text1(5)) & "'and Format(student_Esd,'yyyy-mm-dd') <='" & Trim(Text1(6)) & "'"End IfEnd IfSet mrc = ExecuteSQL(txtSQL, MsgText)j = 1Do While Not mrc.EOFj = j + 1mrc.MoveNextLoopProgressBar1.Visible = TrueProgressBar1.Min = CInt(0)ProgressBar1.Max = CInt(j)Set mrc = ExecuteSQL(txtSQL, MsgText)Frame1.Visible = TrueWith MSFlexGrid1.Visible = False.Rows = 1ProgressBar1.Value = .RowsDo While Not mrc.EOF.Rows = .Rows + 1For i = 0 To mrc.Fields.Count - 1Select Case mrc.Fields(i).TypeCase adDBDate.TextMatrix(.Rows - 1, i) = Format(mrc.Fields(i) & "", "yyyy-mm-dd")Case Else.TextMatrix(.Rows - 1, i) = mrc.Fields(i) & ""End SelectNext imrc.MoveNextLoop.Visible = TrueEnd WithFrame1.Visible = Falsemrc.CloseTextDcolorText1(4).Visible = TrueCombo1.Visible = FalseText1(2).Enabled = FalseText1(3).Enabled = FalseText1(7).Enabled = FalseText1(8).Enabled = FalseEnd SubPrivate Sub Command3_Click()Dim txtSQL As StringDim j As IntegerFor i = 0 To 7If i <> 4 ThenIf Text1(i) = Label2(i).Caption ThenMsgBox "请" & Label2(i).Caption & "!", vbOKOnly, "提示"Text1(i).SetFocusExit SubEnd IfElseIf Text1(i) = Label2(i).Caption ThenMsgBox "请" & Label2(i).Caption & "!", vbOKOnly, "提示"Combo1.SetFocusExit SubEnd IfEnd IfNextIf IsDate(Text1(3)) = False ThenMsgBox "出生日期应为日期格式(yyyy-mm-dd)!", vbOKOnly, "警告"Text1(3).SetFocusExit SubEnd IfIf IsDate(Text1(6)) = False ThenMsgBox "入学日期应为日期格式(yyyy-mm-dd)!", vbOKOnly, "警告"Text1(6).SetFocusExit SubEnd IftxtSQL = "delete from student_Form where student_NO='" & Trim(Text1(0)) & "'" Set mrc = ExecuteSQL(txtSQL, MsgText)txtSQL = "select * from student_Form"Set mrc = ExecuteSQL(txtSQL, MsgText)mrc.AddNewmrc.Fields(0) = Trim(Text1(0))mrc.Fields(1) = Trim(Text1(1))mrc.Fields(2) = Trim(Text1(2))mrc.Fields(3) = Trim(Text1(3))mrc.Fields(4) = Trim(Text1(4))mrc.Fields(5) = Trim(Text1(5))mrc.Fields(6) = Trim(Text1(6))mrc.Fields(7) = Trim(Text1(7))If Text1(8) = Label2(8).Caption Thenmrc.Fields(8) = ""Elsemrc.Fields(8) = Trim(Text1(8))End Ifmrc.Updatemrc.CloseMsgBox "学籍信息修改成功!", vbOKOnly, "提示"j = 0For i = 1 To MSFlexGrid1.Rows - 1If MSFlexGrid1.TextMatrix(i, 0) = Text1(0) Thenj = iEnd IfNextIf j <> 0 ThenMSFlexGrid1.TextMatrix(j, 0) = Trim(Text1(0))MSFlexGrid1.TextMatrix(j, 1) = Trim(Text1(1))MSFlexGrid1.TextMatrix(j, 2) = Trim(Text1(2))MSFlexGrid1.TextMatrix(j, 3) = Trim(Text1(3))MSFlexGrid1.TextMatrix(j, 4) = Trim(Text1(4))MSFlexGrid1.TextMatrix(j, 5) = Trim(Text1(5))MSFlexGrid1.TextMatrix(j, 6) = Trim(Text1(6))MSFlexGrid1.TextMatrix(j, 7) = Trim(Text1(7))If Text1(8) <> Label2(8).Caption ThenMSFlexGrid1.TextMatrix(j, 8) = Trim(Text1(8))End IfEnd IfMSFlexGrid1.TopRow = jj = 0TextDcolorEnd SubPrivate Sub Command4_Click()Dim txtSQL As StringDim j As IntegertxtSQL = "delete from student_Form where student_NO='" & Trim(Text1(0)) & "'" Set mrc = ExecuteSQL(txtSQL, MsgText)MsgBox "学籍信息已经删除!", vbOKOnly, "提示"j = 0For i = 1 To MSFlexGrid1.Rows - 1If MSFlexGrid1.TextMatrix(i, 0) = Text1(0) Thenj = iEnd IfNextIf j <> 0 ThenMSFlexGrid1.TextMatrix(j, 0) = "已删除"MSFlexGrid1.TextMatrix(j, 1) = "已删除"MSFlexGrid1.TextMatrix(j, 2) = "已删除"MSFlexGrid1.TextMatrix(j, 3) = "已删除"MSFlexGrid1.TextMatrix(j, 4) = "已删除"MSFlexGrid1.TextMatrix(j, 5) = "已删除"MSFlexGrid1.TextMatrix(j, 6) = "已删除"MSFlexGrid1.TextMatrix(j, 7) = "已删除"MSFlexGrid1.TextMatrix(j, 8) = "已删除"End Ifj = 0TextDcolorText1(1).Enabled = FalseText1(2).Enabled = FalseText1(3).Enabled = FalseCombo1.Enabled = FalseText1(4).Enabled = FalseText1(5).Enabled = FalseText1(6).Enabled = FalseText1(7).Enabled = FalseText1(8).Enabled = FalseEnd SubPrivate Sub Command5_Click()TextDcolorIf Label1(1).BackColor = &HFFFFFF ThenMSFlexGrid1.ClearShowTitleText1(4).Visible = TrueCombo1.Visible = FalseText1(2).Enabled = FalseText1(3).Enabled = FalseText1(7).Enabled = FalseText1(8).Enabled = FalseEnd IfIf Label1(3).BackColor = &HFFFFFF ThenText1(1).Enabled = FalseText1(2).Enabled = FalseText1(3).Enabled = FalseCombo1.Enabled = FalseText1(4).Enabled = FalseText1(5).Enabled = FalseText1(6).Enabled = FalseText1(7).Enabled = FalseText1(8).Enabled = FalseEnd IfEnd SubPrivate Sub Form_Load()8.6课程信息管理模块:Dim mrc As ADODB.RecordsetDim MsgText As StringPrivate Sub Combo1_Click()List1TextEnd SubPrivate Sub Command1_Click()Dim txtSQL As StringIf Text1(0) = "" ThenMsgBox " 课程名称不能为空!", vbOKOnly, "提示"Text1(0).SetFocusExit SubEnd IftxtSQL = "select * from course_Form where course_Name='" & Trim(Text1(0)) & "'"Set mrc = ExecuteSQL(txtSQL, MsgText)If mrc.EOF = False ThenMsgBox "此课程名称已经存在!", vbOKOnly, "警告"Text1(0).SetFocusExit SubEnd Ifmrc.ClosetxtSQL = "select * from course_Form"Set mrc = ExecuteSQL(txtSQL, MsgText)mrc.AddNewmrc.Fields(0) = Trim(Text1(0))mrc.Fields(1) = Trim(Text1(1))。