资源描述
Click To Edit Master Title Style,Click to edit Master text styles,Second level,Third level,4th level,5th level,北京大学出版社,ISBN 7-301-10173-2/TP.0842 2005.10,SQL Server 数据库管理与开发,Click To Edit Master Title Style,Click to edit Master text styles,Second level,Third level,4th level,5th level,SQL Server 数据库管理与开发,北京大学出版社,ISBN 7-301-10173-2/TP.0842 2005.10,第14章 教学管理系统的VB实现,教学提示,:通过教学成绩管理系统案例,讨论以SQL Server 2000为后台数据库、VB为前台开发语言进行应用系统开发的技能。本教材提供了案例全部源代码及设计文档,请同学们下载并进行阅读、研究,重点在理解数据库应用程序的总体结构、编程技巧。,教学要求,:应掌握:,SQL Server 数据库设计与实现的技能,VB中SQL Server数据库连接和数据访问,VB编程技能,14.1 数据库实现,14.2 主窗体的创建,创建数据库,创建数据表,创建触发器,创建视图,Visual Basic设置,创建主窗体,模块设计与主窗体菜单,全局变量,程序代码,程序启动顺序,第14章 教学管理系统的VB实现,14.3 数据访问机制,14.4 登录界面与权限,14.5 信息查询模块,14.6 数据维护模块,14.7 数据备份还原与系统帮助模块,ADO对象结构,ADO模型编程,SQL执行函数,系统登录界面,权限设置,CELL主要属性,学生档案查询,第14章 教学管理系统的VB实,数据备份,数据还原,帮助文件制作,第14章 教学管理系统的VB实现,1数据库实现,创建数据库,创建数据表,创建触发器,创建视图,2主窗体创建,3数据访问,4登录界面,5信息查询,6数据维护,7备份还原帮助,1 数据库实现,1.1 创建数据库,1.2 创建数据表,1.3 创建触发器,1.4 创建视图,第14章 教学管理系统的VB实现,在查询分析器中运行建库代码:,use master,if exists (select * from dbo.sysdatabases where name = 教学成绩管理数据库),drop database 教学成绩管理数据库,go, 如果存在(教学成绩管理数据库),删除数据库:教学成绩管理数据库,1.1 创建数据库,1数据库实现,创建数据库,创建数据表,创建触发器,创建视图,2主窗体创建,3数据访问,4登录界面,5信息查询,6数据维护,7备份还原帮助,create database 教学成绩管理数据库,go,use 教学成绩管理数据库,go,-禁止触发器嵌套,sp_configure nested triggers,0,reconfigure,go,1.1 创建数据库,1数据库实现,创建数据库,创建数据表,创建触发器,创建视图,2主窗体创建,3数据访问,4登录界面,5信息查询,6数据维护,7备份还原帮助,第14章 教学管理系统的VB实现,第14章 教学管理系统的VB实现,1.2 创建数据表(1),- 函数:is中文字符串,- 功能:判断自变量是否纯中文字符串,返回:是/否,create function is中文字符串(字符串char(255),returns nchar(1) as,begin,declare I tinyint, J tinyint,set I=len(字符串), J=1,while (J=I),begin,if (unicode(substring(字符串,J,1) 256) return 否,set J=J+1,end,return 是,end,go,1数据库实现,创建数据库,创建数据表,创建触发器,创建视图,2主窗体创建,3数据访问,4登录界面,5信息查询,6数据维护,7备份还原帮助,第14章 教学管理系统的VB实现,1.2 创建数据表(2),- 学院信息表 - 代码:编号 2 位,create table 学院信息表,(编号 char(2) primary key ,名称 nchar(20) unique check(dbo.is中文字符串(名称) = 是),简称 nchar(10) unique check(dbo.is中文字符串(简称) = 是),院长 nchar(4) null ,书记 nchar(4) null,),go,1数据库实现,创建数据库,创建数据表,创建触发器,创建视图,2主窗体创建,3数据访问,4登录界面,5信息查询,6数据维护,7备份还原帮助,第14章 教学管理系统的VB实现,1.2 创建数据表(3),- 创建 系部信息表,- 函数:is学院信息表编号,- 功能:判断自变量是否学院信息表编号,返回:是/否,create function is学院信息表编号(字符串 char(4),returns nchar(1) as,begin,if exists(select * from 学院信息表 where 编号=left(字符串,2) return 是,return 否,end,1数据库实现,创建数据库,创建数据表,创建触发器,创建视图,2主窗体创建,3数据访问,4登录界面,5信息查询,6数据维护,7备份还原帮助,第14章 教学管理系统的VB实现,1.3 创建触发器(1),1数据库实现,创建数据库,创建数据表,创建触发器,创建视图,2主窗体创建,3数据访问,4登录界面,5信息查询,6数据维护,7备份还原帮助,- 系部信息表,- 代码:编号 前两位为所在学院的编号,create table 系部信息表,( 编号 char( 4) primary key check(dbo.is学院信息表编号(编号)=是),名称 nchar(20) check(dbo.is中文字符串(名称)=是) unique,主任 nchar( 4) null,书记 nchar( 4) null),go,- 删除学院信息表编号,- 需要指出的是这里不能用外键级联删除,因为学院信息表.编号是2位,,- 系部信息表.编号是4位,系部编号的前两位是系部所在学院的编号。,- 检验即将被删除的编号是否系部信息表的编号的前两位正在引用,,- 如果是则报出错误信息,然后回滚到删除前的状态。,1.3 创建触发器(1),1数据库实现,创建数据库,创建数据表,创建触发器,创建视图,2主窗体创建,3数据访问,4登录界面,5信息查询,6数据维护,7备份还原帮助,第14章 教学管理系统的VB实现,1.3 创建触发器(2),create trigger T删除学院信息表编号,on 学院信息表,for delete,as,begin,set nocount off,declare 编号 char(2),select 编号=编号 from deleted,if exists(select * from 系部信息表 where 编号=left(编号,2),begin,RAisERROR ( 系部编号正在使用, 不可删除!, 16, 1),ROLLBACK TRANSACTIon,end,end,go,第14章 教学管理系统的VB实现,1数据库实现,创建数据库,创建数据表,创建触发器,创建视图,2主窗体创建,3数据访问,4登录界面,5信息查询,6数据维护,7备份还原帮助,1.3 创建触发器(3),- 修改学院信息表编号,- 修改学院信息表编号的同时修改相关系部信息表、教研室信息表的编号的前两位;专业信息表、课程信息表的院系编号的前两位;教师信息表的教研室编号 的前两位;如果是则报出错误信息,然后回滚到删除前的状态。,create trigger T学院信息表编号,on 学院信息表,after update,as,if update(编号),Begin,set nocount off,declare 编号 char(2), 编号_ char(2),select 编号=编号 from deleted,select 编号_=编号 from inserted,第14章 教学管理系统的VB实现,1数据库实现,创建数据库,创建数据表,创建触发器,创建视图,2主窗体创建,3数据访问,4登录界面,5信息查询,6数据维护,7备份还原帮助,1.3 创建触发器(4),系部信息表 set 编号=编号_+substring(编号,3,2),where 编号=left(编号,2),update 专业信息表 set 院系编号=编号_+substring(院系编号,3,2),where 编号=left(院系编号,2),update 课程信息表 set 院系编号=编号_+substring(院系编号,3,2),where 编号=left(院系编号,2),update 教研室信息表 set 编号=编号_+substring(编号,3,4),where 编号=left(编号,2),update 教师信息表 set 教研室编号=编号_+substring(编号,3,4),where 编号=left(教研室编号,2),end,go,第14章 教学管理系统的VB实现,1数据库实现,创建数据库,创建数据表,创建触发器,创建视图,2主窗体创建,3数据访问,4登录界面,5信息查询,6数据维护,7备份还原帮助,1.4 创建视图,教研室信息表视图的建立代码:,create view 教研室信息表视图,as,select 教研室信息表.编号,系部信息表视图.名称 as 系部,系部信息表视图.学院简称 as 学院,教研室信息表.名称,教研室信息表.主任,from 教研室信息表 inner join 系部信息表视图,on,left(教研室信息表.编号,4)=系部信息表视图.编号,第14章 教学管理系统的VB实现,1数据库实现,创建数据库,创建数据表,创建触发器,创建视图,2主窗体创建,3数据访问,4登录界面,5信息查询,6数据维护,7备份还原帮助,在本案例中需要建立,11,个视图,,下面只介绍,教研室信息表视图的建立代码:,2 主窗体创建,第14章 教学管理系统的VB实现,Visual Basic设置,创建主窗体,模块设计与主窗体菜单,全局变量,程序代码,程序启动顺序,1数据库实现,2主窗体创建,VB设置,创建主窗体,模块设计与菜单,全局变量,程序代码,启动顺序,3数据访问,4登录界面,5信息查询,6数据维护,7备份还原帮助,2.1 Visual Basic设置(1),ADO设置,第14章 教学管理系统的VB实现,1数据库实现,2主窗体创建,VB设置,创建主窗体,模块设计与菜单,全局变量,程序代码,启动顺序,3数据访问,4登录界面,5信息查询,6数据维护,7备份还原帮助,2.1 Visual Basic设置(2),Cell32设置,注册,:把cell32.ocx复制windowssystem32(WinXP,Win2000是在winntsystem32)目录中,然后 在开始运行输入:regsrv32 cell32.ocx,单击确定。,设置,:在Visual Basic中单击菜单工程、部件,如图所示。单击浏览选择cell32.ocx,单击打开 。,第14章 教学管理系统的VB实现,1数据库实现,2主窗体创建,VB设置,创建主窗体,模块设计与菜单,全局变量,程序代码,启动顺序,3数据访问,4登录界面,5信息查询,6数据维护,7备份还原帮助,2.2 创建主窗体,主窗体界面主要有菜单栏、工具栏、界面图片、状态栏。,第14章 教学管理系统的VB实现,1数据库实现,2主窗体创建,VB设置,创建主窗体,模块设计与菜单,全局变量,程序代码,启动顺序,3数据访问,4登录界面,5信息查询,6数据维护,7备份还原帮助,2.3模块设计与主窗体菜单,第14章 教学管理系统的VB实现,1数据库实现,2主窗体创建,VB设置,创建主窗体,模块设计与菜单,全局变量,程序代码,启动顺序,3数据访问,4登录界面,5信息查询,6数据维护,7备份还原帮助,菜单,模块名,功能描述,教学成绩管理系统,Frm欢迎界面、frmMain,主控界面,系统设置,登录,FrmLogin,登录,修改密码,Frm修改密码,修改本人密码,设置密码,Frm设置密码,设置他人密码,用户信息维护,Frm用户信息表维护,维护用户信息,系统参数设置,Frm系统设置,系统参数设置,数据备份,Frm数据恢复,数据备份,数据恢复,Frm数据备份,数据恢复,退出,公共信息,学院信息表维护,Frm学院信息表录入,维护学院信息表,系部信息表维护,Frm系部信息表录入,维护专业信息表,专业信息表维护,Frm专业信息表录入,维护专业信息表,教研室信息表维护,Frm教研室信息表录入,维护教研室信息表,课程信息表维护,Frm课程信息表录入,维护课程信息表,班级信息表维护,Frm班级信息表录入,维护班级信息表,学院信息表查询,Frm学院信息表查询,查询学院信息表,系部信息表查询,Frm系部信息表查询,查询系部信息表,专业信息表查询,Frm专业信息表查询,查询专业信息表,教研室信息表查询,Frm教研室信息查询,查询教研室信息表,课程信息表查询,Frm课程信息表查询,查询课程信息表,2.3模块设计与主窗体菜单,1数据库实现,2主窗体创建,VB设置,创建主窗体,模块设计与菜单,全局变量,程序代码,启动顺序,3数据访问,4登录界面,5信息查询,6数据维护,7备份还原帮助,第14章 教学管理系统的VB实现,2.3模块设计与主窗体菜单,1数据库实现,2主窗体创建,VB设置,创建主窗体,模块设计与菜单,全局变量,程序代码,启动顺序,3数据访问,4登录界面,5信息查询,6数据维护,7备份还原帮助,班级信息表查询,Frm班级信息表查询,查询班级信息表,师资管理,教师档案录入修改,Frm教师信息表录入,维护教师档案表,教师档案表查询,Frm教师信息表查询,查询教师档案表,学籍管理,学生信息录入,Frm学生信息表录入,维护学生档案表,按学号查询,Frm查询学生_按学号,查询学生档案表:按学号,按姓名查询,Frm查询学生_按姓名,查询学生档案表:按姓名,按班级查询,Frm查询学生_按班级,查询学生档案表:按班级,组合查询,Frm查询学生_组合,查询学生档案表:组合查询,第14章 教学管理系统的VB实现,2.3模块设计与主窗体菜单,1数据库实现,2主窗体创建,VB设置,创建主窗体,模块设计与菜单,全局变量,程序代码,启动顺序,3数据访问,4登录界面,5信息查询,6数据维护,7备份还原帮助,课程设置,班级课程表录入与修改,Frm班级课程设置表录入,维护班级课程设置表,班级课程设置查询,Frm班级课程设置表查询,查询班级课程设置表,教师教学工作量查询,Frm查询教师教学工作量,查询教师教学工作量,成绩管理,成绩录入,Frm成绩信息录入,维护学生档案表,按学号查询,Frm查询成绩_按学号,查询学生成绩:按学号,按姓名查询,Frm查询成绩_按姓名,查询学生成绩:按姓名,第14章 教学管理系统的VB实现,2.3模块设计与主窗体菜单,1数据库实现,2主窗体创建,VB设置,创建主窗体,模块设计与菜单,全局变量,程序代码,启动顺序,3数据访问,4登录界面,5信息查询,6数据维护,7备份还原帮助,按课程查询,Frm查询成绩_按课程,查询学生成绩:按班级,按班级查询,Frm查询成绩_按班级,查询学生成绩:组合查询,帮助,帮助内容,调用help.chm帮助文件,关于,FrmAbout,关于,第14章 教学管理系统的VB实现,2.4 全局变量,本系统在模块module1的通用声明部分定义了10个全局变量,变量及意义如下:,Public HostName As String,连接主机(服务器名),Public UserType As String,用户类型:学生, 教师, 学校领导, 班主任, 教务管理员,Public UserName As String,用户名,Public UserId As String,用户号(学号、教师编号),Public LoginUserName As String,登录名,Public ConnectUserName As String,连接用户名,Public ConnectPassWord As String,连接用户口令,Public txtSQL As String,SQL查询语句,Public msg_Sql As String,SQL查询返回信息,返回结果:Recordset,Public CurrentRow As Long,cell表格中的当前行号,第14章 教学管理系统的VB实现,1数据库实现,2主窗体创建,VB设置,创建主窗体,模块设计与菜单,全局变量,程序代码,启动顺序,3数据访问,4登录界面,5信息查询,6数据维护,7备份还原帮助,2.5 程序代码(),主模块装载过程Form_Load(),Private Sub Form_Load(),Image1.Left = 45,定义Image1的位置和大小,Image1.Top = 600,Image1.Width = Me.Width - 90,Image1.Height = Me.Height - 700,Me.Enabled = False,主界面无效,Load frmLogin,装载登录模块:frmLogin,frmLogin.Show,显示登录模块:frmLogin,End Sub,第14章 教学管理系统的VB实现,1数据库实现,2主窗体创建,VB设置,创建主窗体,模块设计与菜单,全局变量,程序代码,启动顺序,3数据访问,4登录界面,5信息查询,6数据维护,7备份还原帮助,2.5 程序代码(),单击工具栏过程,Private Sub Tb工具_ButtonClick(ByVal Button As MSComctlLib.Button),Select Case Button.Index,Case 1,单击工具栏学号查询学生情况按钮,frm查询学生_按学号.Show vbModal,显示相应的界面:frm查询学生_按学号,Case 2,frm查询学生_按姓名.Show vbModal,Case 3,frm查询学生_按班级.Show vbModal,Case 4,frm查询学生_组合.Show vbModal,Case 6,frm查询成绩_按学号.Show vbModal,Case 7,第14章 教学管理系统的VB实现,1数据库实现,2主窗体创建,VB设置,创建主窗体,模块设计与菜单,全局变量,程序代码,启动顺序,3数据访问,4登录界面,5信息查询,6数据维护,7备份还原帮助,2.5 程序代码(),frm查询成绩_按姓名.Show vbModal,Case 8,frm查询成绩_按课程.Show vbModal,Case 9,frm查询成绩_按班级.Show vbModal,Case 11,Shell hh.exe & App.Path & help.chm, vbNormalFocus,Case 12,End,End Select,End Sub,第14章 教学管理系统的VB实现,1数据库实现,2主窗体创建,VB设置,创建主窗体,模块设计与菜单,全局变量,程序代码,启动顺序,3数据访问,4登录界面,5信息查询,6数据维护,7备份还原帮助,2.5 程序代码(),单击菜单过程,(1) 单击帮助下帮助菜单模块,Private Sub menu帮助内容_Click(),通过hh.exe访问help.chm帮助文件,Shell hh.exe & App. Path,help.chm, vbNormalFocus,End Sub,(2) 单击系统设置下登录菜单模块,Private Sub menu登录_Click(),If MsgBox(您确实要注销本次登录吗?, vbYesNo, 系统信息) = vbYes Then,Form_Load,重新调用主界面的装载模块:form_load()来调用:frmLogin,End If,End Sub,第14章 教学管理系统的VB实现,1数据库实现,2主窗体创建,VB设置,创建主窗体,模块设计与菜单,全局变量,程序代码,启动顺序,3数据访问,4登录界面,5信息查询,6数据维护,7备份还原帮助,2.5 程序代码(4),(3) 单击其他菜单项模块,主控界面中的其他菜单项的单击模块都类似下列单击学院信息表查询,显示相应的界面。,Private Sub menu学院信息表查询_Click(),frm学院信息表查询.Show vbModal,End Sub,第14章 教学管理系统的VB实现,1数据库实现,2主窗体创建,VB设置,创建主窗体,模块设计与菜单,全局变量,程序代码,启动顺序,3数据访问,4登录界面,5信息查询,6数据维护,7备份还原帮助,2.6 程序启动顺序(),Main(),在教学成绩管理工程属性的通用选项卡,设置启动对象:Sub Main()。,Sub Main(),HostName = (local),frm欢迎界面.Show,显示:frm欢迎界面,End Sub,frm欢迎界面,在该模块中只有4个过程:Form_Click、Form_KeyPress、Image1_Click、Timer1_Timer,其代码相同,只有下列两句。,Private Sub ,Unload Me,Load frmMain,装载主界面,End Sub,第14章 教学管理系统的VB实现,1数据库实现,2主窗体创建,VB设置,创建主窗体,模块设计与菜单,全局变量,程序代码,启动顺序,3数据访问,4登录界面,5信息查询,6数据维护,7备份还原帮助,2.6 程序启动顺序(),frmMain(主界面):form_load(),Private Sub Form_Load(),Me.Enabled = False,主界面无效,Load frmLogin,装载登录模块:frmLogin,frmLogin.Show,显示登录模块:frmLogin,End Sub,第14章 教学管理系统的VB实现,1数据库实现,2主窗体创建,VB设置,创建主窗体,模块设计与菜单,全局变量,程序代码,启动顺序,3数据访问,4登录界面,5信息查询,6数据维护,7备份还原帮助,2.6 程序启动顺序(),frmLogin(登录界面):form_load(),在该模块中只有2个出口,即确定和取消按钮。其中:确定在判断用户合法后返回主控界面,取消则退出模块。,Private Sub Cmd确认_Click(),合法用户,UserType = Cmb用户类型.Text,LoginUserName = Trim(Txt用户名称.Text),Unload frmLogin,关闭登录窗口,frmMain.Enabled = True,使主窗口可用,frmMain.Visible = True,主窗口可见,返回主控界面: frmMain,End Sub,Private Sub Cmd取消_Click(),Unload frmLogin,End,退出,停机,End Sub,第14章 教学管理系统的VB实现,1数据库实现,2主窗体创建,VB设置,创建主窗体,模块设计与菜单,全局变量,程序代码,启动顺序,3数据访问,4登录界面,5信息查询,6数据维护,7备份还原帮助,3,数据访问机制,第14章 教学管理系统的VB实现,3.1 ADO对象结构,3.2 ADO模型编程,3.3 SQL执行函数,1数据库实现,2主窗体创建,3数据访问,ADO对象结构,ADO模型编程,SQL执行函数,4登录界面,5信息查询,6数据维护,7备份还原帮助,3.1 ADO对象结构(),Connection,建立数据源和ADO程序之间的连接,它代表与一个数据源的惟一对话。包含了有关连接的信息。例如:游标类型、连接字符串、查询超时、连接超时和默认数据库。,Recordset,查询得到的一组记录组成的记录集。,Field,包含记录集中的某一个记录字段的信息。字段包含在一个字段集合中。字段的信息包括数据类型、精确度和数据范围等。,Command,包含了一个命令的相关信息,如查询字符串、参数定义等。可以不定义一个命令对象而直接在一个查询语句中打开一个记录集对象。,第14章 教学管理系统的VB实现,1数据库实现,2主窗体创建,3数据访问,ADO对象结构,ADO模型编程,SQL执行函数,4登录界面,5信息查询,6数据维护,7备份还原帮助,ADO对象定义了一个可编程的分层的对象集合。,3.1 ADO对象结构(),Parameter,与命令对象相关的参数。命令对象的所有参数都包含在它的参数集合中,可以通过对数据库进行查询来自动创建ADO参数对象。,Property,ADO对象的属性。ADO对象有两种类型的属性:内置属性和动态生成的属性。内置属性是指在ADO对象里面的那些属性,任何ADO对象都有这些内置属性;动态属性由底层数据源定义,并且每个ADO对象都有对应的属性集合。,Error,包含了由数据源产生的Errors集合中的扩展的错误信息。由于一个单独的语句会产生一个或多个错误,因此Errors集合可以同时包括一个或多个Error对象,第14章 教学管理系统的VB实现,1数据库实现,2主窗体创建,3数据访问,ADO对象结构,ADO模型编程,SQL执行函数,4登录界面,5信息查询,6数据维护,7备份还原帮助,3.1 ADO对象结构(),ADO对象结构关系图:,第14章 教学管理系统的VB实现,1数据库实现,2主窗体创建,3数据访问,ADO对象结构,ADO模型编程,SQL执行函数,4登录界面,5信息查询,6数据维护,7备份还原帮助,3.2 ADO编程模型,ADO通过以下步骤来完成对数据库的操作:,(1) 首先创建一个到数据源的连接,(Connection),对象,连接到数据库;或者开始一个事务,(Transaction),。,(2) 创建一个代表SQL命令行,(Command),,包括变量、参数、可选项等)的对象。,(3) 执行命令行。,(4) 如果返回以表格形式组织的数据,则将它们保存在缓存中,产生相应的数据集对象,(Recordset),,这样便于查找、操作数据。,(5) 通过数据集对象进行各种操作。包括修改、增加、删除等。,(6) 更新数据源。如果使用事务,确认是否接受事务期间发生的数据变化。,(7) 结束连接和事务。,第14章 教学管理系统的VB实现,1数据库实现,2主窗体创建,3数据访问,ADO对象结构,ADO模型编程,SQL执行函数,4登录界面,5信息查询,6数据维护,7备份还原帮助,3.3 SQL执行函数(),连接,SQL Server,连接串函数:,ConnectString,Public Function,ConnectString,() As String,集中定义:驱动程序、服务器名、数据库名、登录用户名和登录密码等数据库访问参数,ConnectString,= driver=SQL Server; SERVER= &,HostName,& _,; DATABASE=,教学成绩管理数据库,;UID= &,ConnectUserName, PWD= &_,ConnectPassWord,End Function,第14章 教学管理系统的VB实现,1数据库实现,2主窗体创建,3数据访问,ADO对象结构,ADO模型编程,SQL执行函数,4登录界面,5信息查询,6数据维护,7备份还原帮助,3.3 SQL执行函数(),SQL语句执行函数:ExecuteSQL,Public Function ExecuteSQL (ByVal SQL As String, MsgString As String) As ADODB.Recordset,传递参数:SQL 传递查询语句,MsgString传递查询信息,返回执行结果:Recordset,Dim cnn As ADODB.Connection,定义连接,Dim rst As ADODB.Recordset,定义记录集,Dim sTokens() As String,定义字符串数组,On Error GoTo ExecuteSQL_Error,出错处理,sTokens = Split (SQL),以空格分割SQL命令串,Set cnn = New ADODB.Connection,cnn. Open ConnectString,调用ConnectString函数,以该函数的参数连接数据库,第14章 教学管理系统的VB实现,1数据库实现,2主窗体创建,3数据访问,ADO对象结构,ADO模型编程,SQL执行函数,4登录界面,5信息查询,6数据维护,7备份还原帮助,3.3 SQL执行函数(3),If InStr (INSERT, DELETE, UPDATE, UCase$(sTokens (0) Then,判断为:insert、delete、update语句并执行,cnn. BeginTrans,启动事务,cnn. ExecuteSQL,执行TransactionSQL语句,cnn. CommitTrans,提交事务,MsgString = sTokens(0) & 操作成功 ,Else,Set rst = New ADODB.Recordset,rst. Open Trim$(SQL), cnn, adOpenKeyset, adLockOptimistic,执行select语句,Set ExecuteSQL = rst,返回结果,MsgString = 查询到 & rst.RecordCount & 条记录 ,End If,第14章 教学管理系统的VB实现,1数据库实现,2主窗体创建,3数据访问,ADO对象结构,ADO模型编程,SQL执行函数,4登录界面,5信息查询,6数据维护,7备份还原帮助,3.3 SQL执行函数(4),ExecuteSQL_Exit:,Set rst = Nothing,释放查询结果集,Set cnn = Nothing,关闭连接,Exit Function,退出function,ExecuteSQL_Error:,出错处理,MsgString = 查询错误: & Err.Description,Resume ExecuteSQL_Exit,错误处理程序结束后,转移到ExecuteSQL_Exit标号处运行,End Function,读懂上述2个数据库访问函数,可用单步跟踪方式执行1条SQL语句的方法。请用,单步跟踪方式,执行frmLogin模块中的确定的单击过程:Cmd确认_Click(),并在单步跟踪过程中,查询各个变量的值。,第14章 教学管理系统的VB实现,1数据库实现,2主窗体创建,3数据访问,ADO对象结构,ADO模型编程,SQL执行函数,4登录界面,5信息查询,6数据维护,7备份还原帮助,4 登录界面与权限,第14章 教学管理系统的VB实现,系统登录界面,权限设置,1数据库实现,2主窗体创建,3数据访问,4登录界面,系统登录界面,权限设置,5信息查询,6数据维护,7备份还原帮助,4.1 系统登录界面(),登录界面,教学成绩管理系统的用户划分为5种角色:学生、教师、班主任、学校领导和教务管理员。,第14章 教学管理系统的VB实现,1数据库实现,2主窗体创建,3数据访问,4登录界面,系统登录界面,权限设置,5信息查询,6数据维护,7备份还原帮助,4.1 系统登录界面(2),用户数据表,本模块涉及到3个表或视图:,学生登录信息表:视图,基本表是学生信息表;,老师登录信息表:视图,基本表是学生信息表;,管理员信息表:班主任、学校领导和教务管理员信息。,主要程序代码,本模块有5个过程代码:装载Form_Load()、Cmb用户类型_Click、Cmd确认_Click、Cmd取消_Click、Cmd帮助_Click。其中主要过程是Cmd确认_Click,代码如下:,第14章 教学管理系统的VB实现,1数据库实现,2主窗体创建,3数据访问,4登录界面,系统登录界面,权限设置,5信息查询,6数据维护,7备份还原帮助,4.1 系统登录界面(),过程:Cmd确认_Click,功能:实现数据库连接和用户登录功能,Private Sub Cmd确认_Click(),If (Txt用户名称.Text = ) Or Cmb用户类型.Text = Or Txt密码.Text = Then,MsgBox 输入信息不全!, vbCritical, 错误信息,Txt用户名称.SetFocus,Exit Sub,End If,第14章 教学管理系统的VB实现,1数据库实现,2主窗体创建,3数据访问,4登录界面,系统登录界面,权限设置,5信息查询,6数据维护,7备份还原帮助,4.1 系统登录界面(),查找对应的登录用户,并判断密码是否正确,ConnectUserName = sa,ConnectPassWord = 11,Select Case Cmb用户类型.Text,Case 学生,txtSQL = Select * From 学生登录信息表 Where 学号= & Trim(Txt用户名称.Text) & ,Case 教师,txtSQL = Select * From 教师登录信息表 Where 登录名= & Trim(Txt用户名称.Text) & ,Case 学校领导,txtSQL = Select * From 管理员信息表 Where 用户身份=领导 and 登录名= &_,Trim(Txt用户名称.Text) & ,第14章 教学管理系统的VB实现,1数据库实现,2主窗体创建,3数据访问,4登录界面,系统登录界面,权限设置,5信息查询,6数据维护,7备份还原帮助,Case 班主任,txtSQL = Select * From 管理员信息表 Where 用户身份=班主任 and 登录名= & _,Trim(Txt用户名称.Text) & ,Case 教务管理员,txtSQL = Select * From 管理员信息表 Where 用户身份=管理员 and 登录名= &_,Trim(Txt用户名称.Text) & ,End Select,Set objRs = ExecuteSQL(txtSQL, msg_Sql),4.1 系统登录界面(),第14章 教学管理系统的VB实现,1数据库实现,2主窗体创建,3数据访问,4登录界面,系统登录界面,权限设置,5信息查询,6数据维护,7备份还原帮助,If Left(msg_Sql, 4) = 查询错误 Then,MsgBox msg_Sql, vbCritical, 错误信息,End,End If,If objRs.EOF Then,MsgBox 没有找到密码信息!, vbCritical, 错误信息,Txt密码.SetFocus,Exit Sub,End If,4.1 系统登录界面(),第14章 教学管理系统的VB实现,1数据库实现,2主窗体创建,3数据访问,4登录界面,系统登录界面,权限设置,5信息查询,6数据维护,7备份还原帮助,If Trim(objRs(密码) Trim(Txt密码.Text) Then,MsgBox 密码错误,请重新登录!, vbCritical, 错误信息,Txt密码.SetFocus 选中输入内容,SendKeys Home+End,Exit Sub,End If,Select Case Cmb用户类型.Text,Case 学生,UserId = objRs(学号),4.1 系统登录界面(),第14章 教学管理系统的VB实现,1数据库实现,2主窗体创建,3数据访问,4登录界面,系统登录界面,权限设置,5信息查询,6数据维护,7备份还原帮助,frmMain.StatusBar1.Panels(1).Text = 用户: + Trim(objRs(姓名) + 同学,Case 教师,UserId = objRs(编号) frmMain.StatusBar1.Panels(1).Text = 用户: + Trim(objRs(姓名) + 老师,Case 学校领导,frmMain.StatusBar1.Panels(1).Text = 用户: + Trim(objRs(姓名) + 领导,Case 班主任,frmMain.StatusBar1.Panels(1).Text = 用户: + Trim(objRs(姓名) + 班主任,4.1 系统登录界面(),第14章 教学管理系统的VB实现,1数据库实现,2主窗体创建,3数据访问,4登录界面,系统登录界面,权限设置,5信息查询,6数据维护,7备份还原帮助,frmMain.StatusBar1.Panels(1).Text = 用户: + Trim(objRs(姓名) + 班主任,Case 教务管理员,frmMain.StatusBar1.Panels(1).Text = 用户: + Trim(objRs(姓名) + 管理员,End Select,objRs.Close,根据用户类型设置菜单和工具按钮的可用性,Call menu_setup,4.1 系统登录界面(),第14章 教学管理系统的VB实现,1数据库实现,2主窗体创建,3数据访问,4登录界面,系统登录界面,权限设置,5信息查询,6数据维护,7备份还原帮助,合法用户,UserType = Cmb用户类型.Text,LoginUserName = Trim(Txt用户名称.Text),Unload frmLogin,关闭登录窗口,frmMain.Enabled = True,使主窗口可用,frmMain.Visible = True,End Sub,4.1 系统登录界面(),第14章 教学管理系统的VB实现,1数据库实现,2主窗体创建,3数据访问,4登录界面,系统登录界面,权限设置,5信息查询,6数据维护,7备份还原帮助,4.2 权限设置,Menu_setup,是本系统通用模块中已经定义的,通过它来实现权限管理。,Public Sub menu_setup(),menu系统设置,frmMain.menu登录.Enabled = True,frmMain.menu修改密码.Enabled = True,frmMain.menu数据备份.Enabled = False,frmMain.menu数据恢复.Enabled = False,frmMain.menu系统参数.Enabled = False,frmMain.menu设置密码.Enabled = False,frmMain.menu用户信息维护.Enabled = False,frmMain.menu退出系统.Enabled = True,menu公共信息,第14章 教学管理系统的VB实现,1数据库实现,2主窗体创建,3数据访问,4登录界面,系统登录界面,权限设置,5信息查询,6数据维护,7备份还原帮助,4.2 权限设置,menu师资管理,menu学籍管理,menu课程设置,menu成绩管理,menu帮助,Tb工具,frmMain.Tb工具.Buttons.Item(1).Enabled = True,frmMain.Tb工具.Buttons.Item(12).Enabled = True,第14章 教学管理系统的VB实现,1数据库实现,2主窗体创建,3数据访问,4登录界面,系统登录界面,权限设置,5信息查询,6数据维护,7备份还原帮助,4.2 权限设置,Select Case frmLogin.Cmb用户类型.Text,Case 学生,ConnectUserName = student,ConnectPassWord = 123,Case 教师,ConnectUserName = teacher,ConnectPassWord = 123,frmMain.menu查询学生_按班级.Enabled = True,frmMain.menu查询学生_组合.Enabled = True,Case 班主任,End Select,End Sub,第14章 教学管理系统的VB实现,1数据库实现,2主窗体创建,3数据访问,4登录界面,系统登录界面,权限设置,5信息查询,6数据维护,7备份还原帮助,5 信息查询模块,第14章 教学管理系统的VB实现,CELL主要属性,学生档案查询,1数据库实现,2主窗体创建,3数据访问,4登录界面,5信息查询,Cell主要属性,学生档案查询,6数据维护,7备份还原帮助,5.1 Cell主要属性(1),方法,作用,格式语法,DoSetCellAlignment,设置单元格文本对齐方式,DoSetCellAlignment( col, row,align),DoSetCell3DState(),设置指定单元格的显示模式,DoSetCell3DState(col,row,state),DoSetDefaultFont,设置缺省字体,DoSetDefaultFont(size, style, name),DoSetCellReadOnly,设置单元格内容只读,DoSetCellReadOnly(col, row, readonly),DoJoinCells,合并指定区域内的单元格,DoJoinCells(startcol, startrow, endcol, endrow),第14章 教学管理系统的VB实现,1数据库实现,2主窗体创建,3数据访问,4登录界面,5信息查询,Cell主要属性,学生档案查询,6数据维护,7备份还原帮助,5.1 Cell主要属性(2),方法,作用,格式语法,DoRedrawAll,重画Cell控件,DoRedrawAll(),DoSetUnScrollRow,不滚动起始及中止行(10行),DoSetUnScrollRow (row1,row2),DoResetContent,将表格置空,DoResetContent(),DoSetUnScrollCol,不滚动起始及中止列(10列),DoSetUnScrollCol( col1, col2),DoSetRowHeight,设置控件中指定行的高度,DoSetRowHeight(row, height),DoSetCellString,设置指定单元格字符串数据,DoSetCellString(col, row, string),第14章 教学管理系统的VB实现,1数据库实现,2主窗体创建,3数据访问,4登录界面,5信息查询,Cell主要属性,学生档案查询,6数据维护,7备份还原帮助,5.2 学生档案查询(1),模块界面,在,菜单中我们选择,学籍管理,按专业班级查询学生档案,弹出,按专业班级查询学生档案,的窗口,如下图:,第14章 教学管理系统的VB实现,1数据库实现,2主窗体创建,3数据访问,4登录界面,5信息查询,Cell主要属性,学生档案查询,6数据维护,7备份还原帮助,相关数据表:,这里涉及5个表或视图:,学院信息表:学院信息;,系部信息表:各学院系部信息;,专业信息表:学院系部专业信息;,学生信息表视图:视图,基表是学生信息表、专业信息表、班级信息表、系部信息视图;,班级信息表视图:视图,基表是班级信息表、系部信息表视图、专业信息表;,第14章 教学管理系统的VB实现,5.2 学生档案查询(2),1数据库实现,2主窗体创建,3数据访问,4登录界面,5信息查询,Cell主要属性,学生档案查询,6数据维护,7备份还原帮助,5.2 学生档案查询(3)
展开阅读全文