(精品论文)学生成绩管理系统_第1页
(精品论文)学生成绩管理系统_第2页
(精品论文)学生成绩管理系统_第3页
(精品论文)学生成绩管理系统_第4页
(精品论文)学生成绩管理系统_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

P1.0 数据库的建立学生成绩数据库XSCJ使用的表结构如下:1、 学生信息表xs存放学生的基本信息,表结构如下表所示:列名数据类型长度允许空xhchar6否xmchar8是xbbit1是zychar12是cssjDatetime8是zxfint4是bzvarchar500是zpimage16是2、 课程信息表kc存放课程的基本信息,表结构如下表所示:列名数据类型长度允许空kchchar4否kcmchar16是xqtinyint1是xsint4是xfint4是3、学生课程成绩表xs_kc存放学生课程的成绩信息,表结构如下表所示:列名数据类型长度允许空xhchar8否kchchar4否cjint4是xfint4是Xh,kch设置为关键字段。4、 系统登录表xscjuser存放用户登录信息。性别对应表cxb列名数据类型长度允许空xbbit1否xbmvarchar4否5、 学生信息表XS数据样本学号姓名专业名性别出生时间总学分备注081101王林计算机11990-02-1050null081102程明计算机11991-02-0150null081103王燕计算机01989-10-0650null081104韦严平计算机11990-08-2650null081106李方方计算机11990-11-2050null081107李明计算机11990-05-0154提前修完数据结构,并获学分081108林一帆计算机11989-08-0552已提前修完一门课081109张强民计算机11989-08-1150Null081110张蔚计算机01991-07-2250三好生081111赵琳计算机01990-03-1850Null081113严红计算机01989-08-1148有一门功课不及格,待补考081201王敏通信工程11989-06-1042Null081202王林通信工程11989-01-2940有一门功课不及格,待补考081203王玉民通信工程11990-03-2642Null081204马琳琳通信工程01989-02-1042Null081206李计通信工程11989-09-2042Null081210李红庆通信工程11989-05-0144已提前修完一门课081216孙祥欣通信工程11989-03-0942Null081218孙研通信工程11990-10-0942Null081220吴薇华通信工程01990-03-1842Null081221刘燕敏通信工程01989-11-1242Null081241罗林琳通信工程01990-01-3050转专业学习照片字段的内容通过图像文件加载到相应的照片字段中。6、 课程信息表KC数据样本课程号课程名开课学期学时学分101计算机基础1805102程序设计与语言2684206离散数学4684208数据结构5684209操作系统6684210计算机原理5855212数据库原理7684301计算机网络7513302软件工程75137、 学生课程成绩表XS_KC数据样本学号课程号成绩0811011018008110110278081101206760811031016208110310270081103206810811041019008110410284081104206650811071017808110710280081107206680811081018508110810264081108206870811091016608110910283081109206700811112067608111310163081113102790811132066008120110180081202101650812031018708120410191081210101760811021027808110220678081106101650811061027108110620680081110101950811101029008111020689081111101900811111027108121610181081218101700812201018208122110176081241101908、 性别对照表:xbxbm1男0女P1.1 连接SQL Server数据库1、 创建数据源首先在“控制面板”的“管理工具”中创建ODBC数据源。(1) 在“控制面板”的“管理工具”中选择“ODBC数据源”图标双击,出现如图所示的界面在图中选择“添加”按钮,进入如下图所示的界面。(2) 在上图中,选择安装的驱动程序为“SQL Server”,单击“完成按钮”,出现如下图所示的界面。输入数据源名,输入本地服务器名。(3) 选择下一步,出现如下图所示的界面。也可选择另一种验证方式。输入登录ID和密码。(4) 选择下一步,出现如下图所示的界面。更改默认的数据库,在此设置默认数据库为XSCJ,然后提示完成剩余工作。2、 ADO Data和ADODB连接SQL Server数据库(注:此操作在后面的除了第一个窗体外的三个窗体中都会用到,在这里提前说明一下,并不需要设置在第一个窗体中)(1)用可视化ADODC控件连接数据库在VB选“工程”菜单“部件”菜单项,系统打开部件对话框,如下图所示:选择两个ADO控件,它们是“Microsoft ADO Data Control 6.0”和“Microsoft DataGrid Control 6.0”。最后“确定”,此后VB6.0工具栏中就增加了上述两个控件的图标。前者用于连接数据库,后者用于以表格形式显示数据库表的内容。在VB表单中加入“Microsoft ADO Data Control 6.0”控件(简称ADODC)命名合适的名称,例如stuado。设置控件ADODC的ConnectionString属性。选择该属性,如下图所示。单击“”,系统打开对话框,如下图所示:单击“生成”,系统显示“数据链接属性”对话框,选择“连接”选项卡,如下图所示:在“指定数据源”处选择数据源mssql,在初始目录处选择xscj数据库。测试连接一下。如果成功,点击“确定”按钮。如下图所示:则自动生成连接字符串。选择“应用”按钮,然后选择“确定”按钮。设置ADODC的RecordSource属性。如下图所示:打开“属性页”。在“命令类型”中选择“1-adCmdText”,在命令文本中输入“select * from xs,cxb where xs.xb=cxb.xb”。选择“应用”按钮,然后选择“确定”按钮。数据源控件连接数据库完成。此时可以直接访问它,或者可以充当数据表格控件的数据源使用。注:选择命令类型1-adCmdText,表示命令为SQL语句。2-adCmdTable,表示命令为一表名。4-adCmdStoredProc,表示命令是一存储过程名。8-adCmdUnknown,表示不确定命令类型。如果命令类型为存储过程名,则选择对应的名称,否则在命令文本中写入SQL语句。P1.2 学生成绩管理系统主界面本系统是一个用VB实现的简单的学生成绩管理系统,使用可视ADODC控件和ADODB对象来访问后台数据库服务器,系统包含学生信息的查询、学生信息的录入修改删除、学生成绩的录入修改。系统主界面如下图所示。主要功能:主界面,导航作用,单击可进入操作窗口。创建过程:(1) 创建菜单。在窗口中点击右键,选择“编辑菜单”选项,出现如下图所示的界面:分别定义四个菜单的标题和名称(程序中的名字是名称,显示的名字是标题)菜单分别起名为学生信息查询(msstusearch)、学生信息修改(msstuinfo)、学生成绩修改(msstuscore)、退出系统(msquitsys)。注:在保存的过程中,需要新建文件夹保存。出现下图,选择“no”。注:修改窗口的名称为:main,修改窗口的caption为“学生成绩管理系统”创建三个窗口。名称和caption分别为addstu(学生信息修改)、addstuscore(学生成绩修改)、StuSearch(学生信息查询)(2) 主要代码退出系统菜单Private Sub msQuitSys_Click()EndEnd Sub学生信息修改菜单Private Sub msStuInfo_Click()addstu.ShowEnd Sub学生成绩录入菜单Private Sub msStuScore_Click()addstuscore.ShowEnd Sub学生信息查询菜单Private Sub msStuSearch_Click()StuSearch.ShowEnd SubP1.3 学生信息查询目的与要求:了解怎么使用控件显示数据库中的数据,同时了解查询的基本方法。主要功能:可以满足简单查询的需要,什么条件也不输则分页显示所有记录,可以输入条件进行简单的模糊查询,各条件之间为与的关系,在查询的结果中移动记录指针可以查看这个学生的具体选课信息。创建过程:(1) 在窗体上放入学生信息查询的ADODC和学生选课信息的ADODC、创建两个学生信息显示的DataGrid和学生选课信息显示的DataGrid,并分别起名为stuado,stukcado,studg和stukcdg。放入学号textbox(stuxh)、姓名textbox(stuxm)和专业:下拉列表框comboBox控件 (stuzy)。放入一个查询按钮(stusch)。注:ADODC控件可隐藏。注:下拉列表框的选项在属性list中输入(计算机、通信),初始化显示是在test属性中输入(所有专业)。(2) 设置stuado的connectionstring属性为:(手动生成)(3) 设置stuado的recordsource属性为:select * from xs,cxb where xs.xb=cxb.xb(4) 设置studg的datasource属性为stuado。(5) 设置stukcado的connectionstring属性为:(手动生成)(6) 设置stukcado的recordsource属性为:select * from xs,kc,xs_kc where xs.xh=xs_kc.xh and kc.kch=xs_kc.kch(7) 设置stukcdg的datasource属性为stukcado。实现过程:直接打开时,由于控件属性的设置,所以显示所有记录。当输入查询条件时,单击查询按钮,则调用makesqlstr函数产生查询字符串,然后重新设置控件的属性,打开控件显示查询结果集。当专业改变时,调用stuzy_click函数来分别显示所选的专业学生记录。当在查询结果学生信息记录集中移动记录指针时,可以在下面的选课表中看到学生选课的信息。主要代码:(1) 根据学号、姓名的输入信息和专业的选择生成模糊查询的SQL字符串。Dim sqlstr As String 声明保存查询字符串的变量Public Sub makesqlstr() 产生查询字符串的函数sqlstr = If Trim(stuxh) Thensqlstr = and xh like % + Trim(stuxh.Text) + %End IfIf Trim(stuxm) Thensqlstr = sqlstr + and xm like % + Trim(stuxm.Text) + %End IfIf Trim(stuzy) 所有专业 And Trim(stuzy) Thensqlstr = sqlstr + and zy= + Trim(stuzy.Text) + End IfIf Trim(stuzy) = Thensqlstr = sqlstrEnd IfEnd Sub(2) “专业”列表click事件处理显示选择当前专业,并且符合学号、姓名查询条件的学生的信息。Private Sub stuzy_Click()当专业改变时重新从数据库中提取数据 makesqlstrstuado.RecordSource = select * from xs,cxb where xs.xb=cxb.xb _& sqlstr stuado.RefreshEnd Sub(3) “查询”click事件处理用生成的模糊查询的SQL字符串,来刷新stuado,并显示到关联的datagrid中。Private Sub stusch_Click()单击查询按钮从数据库中提取数据makesqlstrstuado.RecordSource = select * from xs,cxb where xs.xb=cxb.xb & sqlstrstuado.RefreshEnd Sub(4) 学生信息显示的datagrid的SelChange事件处理。以当前学生信息的学号作为查询条件,从xs_kc表中查找当前学生的选课记录,并显示到学生课程显示的stukcdg中。Private Sub studg_SelChange(Cancel As Integer)stukcado.RecordSource = select * from xs,kc,xs_kc _& where xs.xh=xs_kc.xh and kc.kch=xs_kc.kch _& and xs.xh= + stuado.Recordset(xh) + stukcado.RefreshEnd SubP1.4学生信息修改目的要求:了解对数据库操作的基本方法(增、删、改)主要功能:用户可以单击下面的表格,用户资料便反映到上面的控件中,这时可以修改控件中的信息,单击更新实现修改。如输入一个新的学号,单击更新实现记录的添加,当选中当前记录点删除时则可以删除此学生记录,双击照片可以选择学生照片,用于更新学生照片信息。创建过程:(1) 在窗体上放入adodc、datagrid并起名为stuado,studg。(2) 设置stuado的connectionstring属性为(手动设置)(3) 设置stuado的recordsource属性为select * from xs,cxb where xs.xb=cxb.xb(4) 设置studg的datasource属性为stuado。(5) 在窗体上放入image控件并起名为stupic,用来显示学生照片。选择image控件的datasource属性为stuado,设置datafield属性为zp,这就完成了image控件和数据库的绑定。记录集移动时,image里面会显示当前学生的照片。(6) 并在窗体上放入如下图所需控件。学号:textbox控件(stuxh),姓名:textbox控件(stuxm),备注:textbox控件(stubz)出生日期:textbox控件(cssj),专业:combo box控件(stuzy),list属性中填“计算机”、“通信工程”,itemdata属性中填“0”,“1”,index属性中填“0”。总学分:textbox控件(stuzxf)。更新:commandbutton控件(stuupd),删除:commandbutton控件(studel)。性别:首先是放上一个frame控件,在frame控件上放上一个optionbutton控件,然后复制optionbutton控件,提示如下图:选择“是”。修改两个optionbutton控件的名称都为stuxbm,修改caption的值分别为“男”和“女”。它们的index值自动赋值为“0”和“1”。实现过程:当单击datagrid中的记录时记录集游标也跟着移动,在stuado_movecomplete事件中取出本条记录显示在上面的控件中。我们可以在控件中修改学生信息,双击选择学生照片,按“更新”按钮调用stuupd_click更新到数据库中,当输入新的学生记录时按“更新”按钮调用stuupd_click添加到数据库中,也可以按“删除”按钮调用studel_click函数删除此记录,系统会调用checkxs触发器来保持数据的参照完整性。(1) 在数据库中定义的触发器。为了保证数据的参照完整性,在删除学生时要检查成绩表中此学生的记录,有记录就删除。此过程房子触发器中完成。create trigger checkxs on dbo.xsfor deleteasdelete from xs_kcwhere xh in(select xh from deleted)(2) VB主要代码general中定义的全局变量Private filename As StringPrivate sqlcon As New ADODB.ConnectionPrivate sqlres As New ADODB.RecordsetPrivate sqlcmd As New ADODB.Commandform加载时打开数据库连接Private Sub Form_Load()sqlcon.Provider = MSDASQL.1sqlcon.Open Persist Security Info=False;Data Source=mssql;Initial Catalog=xscjEnd Sub注:在手动生成中拷贝代码form卸载时关闭数据库连接Private Sub Form_Unload(Cancel As Integer)sqlcon.CloseEnd Sub学生信息记录集记录指针移动完成事件代码当单击stuado控件记录移动图标时产生,在这个过程中取出当前记录的学生信息,更新到学号、姓名等显示控件中去,实现显示和stuado控件记录移动联动。Private Sub stuado_movecomplete(ByVal adReason As ADODB.EventReasonEnum, _ByVal perror As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)If Not pRecordset.EOF And Not pRecordset.BOF Thenstuxh.Text = pRecordset(xh)stuxm.Text = pRecordset(xm)stucssj.Text = pRecordset(cssj)stuzy.Item(0).Text = pRecordset(zy)stuzxf.Text = pRecordset(zxf)stubz.Text = CStr(pRecordset(bz) & )If pRecordset(xb) = 0 Thenstuxbm.Item(0).Value = TrueElsestuxbm.Item(1).Value = TrueEnd IfEnd IfEnd Sub“删除”click事件处理代码从stuado记录集中取出当前记录的学号,然后通过commad对象执行delete语句来删除当前的学生记录。Delete语句的调用会引起checkxs触发器的动作。Private Sub studel_Click()ret = MsgBox(是否要删除 + stuado.Recordset(xh) + 号学生的记录!, vbYesNo, 提示)If ret = vbYes Thensqlcmd.ActiveConnection = sqlconsqlcmd.CommandText = delete from xs where xh= + stuado.Recordset(xh) + sqlcmd.Executestuado.RecordSource = select * from xs,cxb where xs.xb=cxb.xbstuado.RefreshEnd IfEnd Sub“照片”double click事件的处理代码打开对话框,给用户选择照片,并显示在stupic控件中,同时记录下选择的文件名和路径到全局filename变量中,给后面的更新学生信息使用。Private Sub stupic_DblClick()cdlg.Filter = 位图(*.bmp)|*.bmp|图像(*.jpg)|*.jpgcdlg.ShowOpenfilename = cdlg.filenamestupic.Picture = LoadPicture(filename) 预览图片End Sub注:在窗体上添加一个自动隐藏的如下图所示的控件commondialog:修改名字为cdlg。不用修改其他任何属性。读取照片数据的函数代码根据输入照片的文件名,打开文件将照片数据读入到数组中,然后通过appendchunk函数把照片数据写入到field对象中去。Private Sub picsavetodb(ByRef fld As ADODB.Field, diskfile As String) 保存图片到ADODB.FIELD对象中去Const blocksize = 4096Dim bytedata() As Byte 定义数据块数组Dim numblocks As Long 定义数据块个数Dim filelength As Long 标识文件长度Dim leftover As Long 定义剩余字节长度Dim sourcefile As Long 定义自由文件号Dim i As Long 定义循环变量sourcefile = FreeFile 提供一个尚未使用的文件号Open diskfile For Binary Access Read As sourcefile 打开文件filelength = LOF(sourcefile) 得到文件长度If filelength = 0 Then 判断文件是否存在Close sourcefileMsgBox diskfile & 无内容或不存在!Elsenumblocks = filelength blocksize 得到数据块的个数leftover = filelength Mod blocksize 得到剩余字节数fld.Value = NullReDim bytedata(blocksize) 重新定义数据块的大小For i = 1 To numblocksGet sourcefile, , bytedata() 读到内存块中fld.AppendChunk bytedata() 写入FLDNext iReDim bytedata(leftover) 重新定义数据块的大小Get sourcefile, , bytedata() 读到内存块中fld.AppendChunk bytedata() 写入FLDClose sourcefile 关闭源文件End IfEnd Sub“更新”click事件处理代码先查询当前学号的学生信息。有当前学生的信息则修改相应的记录字段,调用picsavetodb将选择的照片保存到记录集的“zp”字段中,将记录集更新到数据库中;没有当前学生的信息则通过addnew新增一条记录,然后修改相应的记录字段,并将记录集更新到数据库中,这里在调用picsavetodb前先要判断filename中是否选择了照片,有照片才保存到数据库中去。Private Sub stuupd_Click()看是否有此学生记录,有就修改,没则添加Dim sqlstr As StringDim bytedata() As ByteDim adofld As ADODB.Fieldsqlstr = select * from xs where xh= + Trim(stuxh.Text) + sqlres.Open sqlstr, sqlcon, adOpenDynamic, adLockPessimisticIf Not sqlres.EOF Then修改sqlres(xm) = stuxm.TextIf stuxbm(0).Value = True Thensqlres(xb) = 1ElseIf stuxbm(1).Value = True Thensqlres(xb) = 0End Ifsqlres(zy) = stuzy.Item(0).Textsqlres(cssj) = CDate(stucssj.Text)sqlres(zxf) = CInt(stuzxf.Text)sqlres(bz) = stubz.Text保存图片到ADODB.FIELD对象中去Set adofld = sqlres(zp)If filename ThenCall picsavetodb(adofld, filename)End Ifsqlres.UpdateElse添加sqlres.AddNewsqlres(xh) = stuxh.Textsqlres(xm) = stuxm.TextIf stuxbm.Item(1).Value = True Thensqlres(xb) = 1ElseIf stuxbm.Item(0).Value = True Thensqlres(xb) = 0End Ifsqlres(zy) = stuzy.Item(0).Textsqlres(cssj) = CDate(stucssj.Text)If Trim(stuzxf.Text) Thensqlres(zxf) = CInt(stuzxf.Text)End Ifsqlres(bz) = stubz.Text保存图片到ADODB.FIELD对象中去Set adofld = sqlres(zp)If filename ThenCall picsavetodb(adofld, filename)End Ifsqlres.UpdateEnd Iffilename = sqlres.Closestuado.RecordSource = select * from xs,cxb where xs.xb=cxb.xbstuado.RefreshEnd SubP1.5学生成绩的录入目的要求:了解VB中调用SQL Server存储过程的基本方法。了解parameter参数对象的使用,视图的更新使用,触发器的使用。程序界面如下图所示:主要功能:用户可以选择专业,这样会列出本专业所有的学生学号,选择课程,这时下面的datagrid中会显示相应课程的学生的成绩和学分可以在datagrid中输入学生成绩,上面修改单个学生成绩,学分不允许修改,输入成绩,触发器会自动添加相应的学分。创建过程:参照上面学生信息修改窗口界面。专业(stuzy),课程名(stukcm),学号(stuxh),姓名(stuxm),成绩(stucj),学分(stuxf),更新(stuupd),删除(studel),adodc(stuado),datagrid(studg)。注:取消按钮先不设置。姓名和学分enabled=false。(不允许修改)置stuado的connectionstring属性(手工设置);recordsource属性为select * from xs_kc_cj Xs_kc_cj为视图名称 datagrid窗口属性中datasource属性为stuado。allowupdate=true,这样datagrid修改成允许更新到视图中,从而更新到数据库相应的表中。选中datagrid,右键菜单中选择“属性”,选择“列”选项卡,添加4列,分别选择datafield为xh,xm,cj,xf。如下图所示:注:在窗口中的datagrid控件中右键菜单中,选择“追加”两次,可添加两列,然后再执行上面的操作在“列”选项卡中,添加4列。实现过程:在form_load事件中编写专业、课程列表项的添加,各专业通过调用getstuzy存储过程来得到,同时检索视图中这个专业、选择这门课程的学生,显示在下面的datagrid中,输入成绩,触发器会自动添加学分,可以选择学号,添加一个学生的某门课程的成绩和选课到学生选课表中去,删除xs_kc表中此学生此门课程的成绩记录。主要代码:1、 SQL Server中定义的存储过程(1) 创建GetStuZY的存储过程,从学生表中查询专业信息create procedure getstuzyasselect distinct zy from xsGO(2) 创建显示学生成绩showscore存储过程查看此学生的这门课成绩是否存在,再返回成绩记录,否则返回学号、姓名、专业、课程名信息。create procedure showscore (xh varchar(6),kcm varchar(16)asdeclare kch varchar(3),count intbeginselect kch=kch from kc where kcm=kcmselect count=count(*) from xs_kc where xh=xh and kch=kchif count=0检查查询记录结果数目select xh,xm,zy from xs where xh=xh返回学生记录elseselect xs.xh,xs.xm,cj,xs_kc.xf,kcm from xs,kc,xs_kcwhere xs.xh=xh and kc.kch=kchand xs.xh=xs_kc.xh and kc.kch=xs_kc.kch返回成绩记录endGO(3) 创建插入学生成绩的addstuscore存储过程。学生此门课程成绩记录如存在则修改成绩,如不存在则添加这条记录。create procedure addstuscore(xh varchar(6),kcm varchar(16),cj int,xf int)asbegindeclare kch varchar(3)select kch=kch from kc where kcm=kcmselect * from xs_kc where xh=xh and kch=kchif rowcount=1update xs_kc set cj=cj,xf=xf where xh=xh and kch=kchelseinsert into xs_kc values(xh,kch,cj,xf)endGO(4) 创建xs_kc_cj视图用来在datagrid中显示学生、课程、成绩的信息。create view dbo.xs_kc_cjasselect xs_kc.xh,kc.kcm,xs_kc.cj,xs_kc.xf,xs.xm,xs.zyfrom kc inner joinxs_kc on kc.kch=xs_kc.kch inner joinxs on xs_kc.xh=xs.xhGO(5) 创建xs_kc的insert、update触发器当添加和修改成绩后,根据当前的成绩自动为该学生该课程增加学分。当成绩小于60分时,学分为0;当大于等于60分时,从该门课程表中取出当前课程的学分来更新当前学生在xs_kc表中这门课程的学分。create trigger checkxfon xs_kc for insert,updateasbeginset nocount on;update xs_kc set xf=0 where cj=60endGO2、 VB的主要代码(1) general中定义的全局变量Private sqlcon As New ADODB.ConnectionPrivate sqlres As ADODB.RecordsetPrivate sqlcmd As New ADODB.Command(2) FORM加载Form加载时打开数据库连接,并且通过执行select语句从数据库中提取课程名,添加到课程下拉列表中去,执行getstuzy存储过程,把返回的专业 添加到专业下拉列表中去。在datagrid中显示当前专业、当前课程的学生、成绩信息、方便修改。Private Sub Form_Load()sqlcon.Provider = msdasqlsqlcon.Open Persist Security Info=False;Data Source=mssql;Initial Catalog=xscjsqlcmd.ActiveConnection = sqlconsqlcmd.CommandText = select * from kcsqlcmd.CommandType = adCmdTextSet sqlres = sqlcmd.Executestukcm.Text = sqlres(kcm)While Not sqlres.EOFstukcm.AddItem (Trim(sqlres(kcm)sqlres.MoveNextWend以上为添加课程sqlcmd.CommandText = getstuzysqlcmd.CommandType = adCmdStoredProcSet sqlres = sqlcmd.Executestuzy.Text = sqlres(zy)While Not sqlres.EOFstuzy.AddItem (sqlres(zy)sqlres.MoveNextWend以上添加专业sqlcmd.CommandText = select * from xs where xs.zy= + stuzy.Text + sqlcmd.CommandType = adCmdTextSet sqlres = sqlcmd.Executestuxh.Text = sqlres(xh)While Not sqlres.EOFstuxh.AddItem (Trim(sqlres(xh)sqlres.MoveNextWend以上添加学号stuxh_Clickstuzy_Clickstuado.RecordSource = select xh,xm,kcm,cj,xh,zy,xf from xs_kc_cj where kcm = + Trim(stukcm.Text) + and zy = + Trim(stuzy.Text) + stuado.RefreshEnd Sub(3) Form卸载Form卸载时关闭数据库连接。Private Sub Form_Unload(Cancel As Integer)sqlres.Closesqlcon.CloseEnd Sub(4) Stuado移动记录Stuado移动记录完成的时候,在学号、姓名、成绩、学分等显示控件中显示当前学生的当前课程的成绩信息。Private Sub stuado_movecomplete(ByVal adReason As ADODB.EventReasonEnum, ByVal perror As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)If Not pRecordset.EOF And Not pRecordset.BOF Thenstuxh.Text = pRecordset(xh)stuxm.Text = pRecordset(xm)stucj.Text = pRecordset(cj)stuxf.Text = CStr(pRecordset(xf) & )End IfEnd Sub(5) “删除”click事件处理调用command执行delete删除当前学号、当前课程名的成绩记录。Private Sub studel_Click()ret = MsgBox(是否要删除 + stuxh.Text + 号学生的 + Trim(stukcm.Text) + 课的成绩记录!, vbYesNo, 提示)If ret = vbYes Thensqlcmd.ActiveConnection = sqlconsqlcmd.CommandText = delete from xs_kc where xh= + stuxh.Text + and kch in(select kch from kc where kcm= + stukcm.Text + )sqlcmd.CommandType = adCmdTextsqlcmd.Executestuado.RecordSource = select xh,xm,kcm,cj,xh,zy,xf from xs_kc_cj where kcm= + Trim(stukcm.Text) + and zy= + Trim(stuzy.Text) + stuado.RefreshEnd IfEnd Sub(6) “课程”下拉列表click事件处理在视图中查询当前专业、当前课程的学生成绩信息,同时调用showscore,在姓名、成绩等text box中显示当前学生的姓名、成绩等信息。Private Sub stukcm_Click()Dim stxh, stkcmstuado.RecordSource = select xh,xm,kcm,cj,xh,zy,xf from xs_kc_cj where kcm= + Trim(stukcm.Text) + and zy= + Trim(stuzy.Text) + stuado.RefreshIf stuado.Recordset.RecordCount = 0 Thenstuxm.Text = stucj.Text = stuxf.Text = Exit SubEnd Ifsqlcmd.CommandText = showscoresqlcmd.CommandType = adCmdStoredProcSet stxh = sqlcmd.CreateParameter(xh, adVarChar, adParamInput,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论