名单中且该项目没有被此人选择则把此人参加该项目的信息插入到参赛情况表中,否则提示此人已经参加了此项目。部分代码如下:
strsql="select*from运动员名单where姓名='"&Text1.Text&"'or学号='"&Text2.Text&"'"
Setrs=cnn.Execute(strsql)
Ifrs.EOF=TrueThen'该运动员不存在,可以入库
strsql1="insertinto运动员名单values('"+Text2.Text+"','"&Text1.Text&"','"+Combo2.Text+"','"+Text4.Text+"')"
strsql3="insertinto运动员参赛情况values('"+Text1.Text+"','"+Combo1.Text+"')"
cnn.Execute(strsql1)
cnn.Execute(strsql3)
MsgBox"报名成功!",vbOKOnly,"提示"
Else
strsql2="select*from运动员参赛情况where姓名='"&Text1.Text&"'and项目名称='"&Combo1.Text&"'"
Setrs=cnn.Execute(strsql2)
Ifrs.EOF=TrueThen
strsql4="insertinto运动员参赛情况values('"&Text1.Text&"','"&Combo1.Text&"')"
cnn.Execute(strsql4)
EndIf
Endif
4.4比赛管理
比赛管理模块中有三个小模块分为:径赛成绩录入与输出、田赛成绩录入与输出和全能成绩录入与输出。这三个模块要实现的功能也一样,所以这三个模块的界面也差不多,在这里就用其中的一个模块来做为例子,就以田赛成绩录入与输出这个模块为例,界面如图4-4所示:
图4-4田赛成绩录入与输出界面
从项目和姓名中选择相应的项目及姓名,输入成绩如果此人的此项目成绩没有录入单击确定就可以把此成绩插入到田赛成绩表中,如果成绩已存在则修改此成绩。代码如下:
strsql="select*from田赛成绩where姓名='"&Combo2.Text&"'and项目名称='"&Combo1.Text&"'"
Setrs=cnn.Execute(strsql)
Ifrs.EOF=TrueThen'该项目成绩没有被记录,可以入库
strsql3="insertinto田赛成绩values('"&Combo2.Text&"','"&Combo1.Text&"','"&Text3.Text&"')"
cnn.Execute(strsql3)
MsgBox"修改成功!",vbOKOnly,"提示"
Text3.Text=""
Else
strsql4="update田赛成绩set成绩='"&Text3.Text&"'where姓名='"&Combo2.Text&"'and项目名称='"&Combo1.Text&"'"
cnn.Execute(strsql4)
Text3.Text=""
EndIf
单击图(4)中的输出就是得出田赛项目的最终成绩即得出田赛项目的名次。田赛输出是把每个田赛项目中的前几名的人员成绩信息输出到最终成绩表中,从田赛成绩中的开始查找田赛项目,则从田赛成绩表中把从项目名单中查找到的项目的前几名成绩信息输出到最终成绩表中。然后再从田赛成绩中查找下一个田赛项目,再把该项目的前几名输出到最终成绩表中,以此循环直到田赛成绩中的项目全部查完。输出部分的代码如下:
strsql6="select每项目取的名次from参数表"
Setrs=cnn.Execute(strsql6)
strsql="selectdistinct项目名称from田赛成绩"
Setrs1=cnn.Execute(strsql)
i=0
DoWhileNotrs1.EOF
strsql1="select*from田赛成绩where项目名称='"&rs1.Fields(0)&"'orderby成绩desc"
Setrs2=cnn.Execute(strsql1)
Forj=0ToVal(rs.Fields(0))-1
strsql3="select*from最终成绩where姓名='"&rs2.Fields(0)&"'and项目名称='"&rs2.Fields(1)&"'"
Setrs=cnn.Execute(strsql3)
Ifrs.EOFThen
strsql0="select分数from名次分数表where名次="&j+1&""
Setrs5=cnn.Execute(strsql0)
strsql2="insertinto最终成绩(姓名,项目名称,成绩,名次,分数)values('"&rs2.Fields(0)&"','"&rs2.Fields(1)&"','"&rs2.Fields(2)&"','"&j+1&"','"&rs5.Fields(0)&"')"
cnn.Execute(strsql2)
EndIf
rs2.MoveNext
Next
rs1.MoveNext
i=i+1
Loop
4.5查询输出
查询输出模块中有七种不同的查询:运动员成绩查询、代表队成绩查询、项目成绩查询、总分表、项目名次表、成绩名次表和成绩汇册。这些查询都是使用SQL语句进行查询,不同的就是SQL语句中的条件不同面已,因此在代码方面都差不多,如项目成绩查询。项目成绩查询界面如图4-5所示。
图4-5查询界面
从图(5)中的项目名称中选择一个项目,然后单击查询就会输出该项目的所有运动员的比赛成绩。部分代码如下:
IfCombo1.Text=""Then
MsgBox"请选择项目名称!",vbOKOnly,"提示"
Else
strsql="select项目类型from运动项目名单where项目名称='"&Combo1.Text&"'"
Setrs=cnn.Execute(strsql
Ifrs.Fields(0)="田赛项目"Then
strsql1="select*from田赛成绩where项目名称='"&Combo1.Text&"'"
Setrs1=cnn.Execute(strsql1)
WithMSHFlexGrid1'详细查询的信息显示
.Rows=2
.CellAlignment=4
.TextMatrix(0,0)="姓名"
.TextMatrix(0,1)="项目名称"
.TextMatrix(0,2)="成绩"
DoWhileNotrs1.EOF
.Rows=.Rows+1
.CellAlignment=4
.TextMatrix(.Rows-2,0)=rs1.Fields(0)
.TextMatrix(.Rows-2,1)=Trim(rs1.Fields(1))
.TextMatrix(.Rows-2,2)=rs1.Fields(2)
rs1.MoveNext
Loop
'.Rows=.Rows-1
EndWith
EndIf
Endif
上述代码只是实现选择的项目是田赛项目的成绩输出,选择的项目是径赛项目和全能项目这里就不列出来了。实现项目成绩查询首先选择项目名称再查询,先判断选择的项目是哪一种类型的项目,如果是全能项目或田赛项目则第一行是姓名、项目名称和成绩,如果是径赛项目第一行就是姓名、项目名称、初赛成绩、预赛成绩和决赛成绩,从第二行开始就是该项目所有运动员的成绩信息。
4.6系统工具
系统工具是为本系统服务的工具,方便本系统的使用。如数据库备份与恢复就是为了防止系统的数据库出现错误,可以通过还原数据库来修正这个错误。而数据表的浏览是让人清楚数据库中有哪些表及表的属性,让人更清楚明白数据库表的结构。这里就以数据库备份与还原为例,界面如图4-6和4-7所示
图4-6备份与还原界面图4-7备份完成界面
只要单击下图(6)中备份或恢复即可完成备份或恢复操作。图(7)就是完成了数据库备份成功后的界面。备份数据库就是把系统中的数据库压缩拷贝到另外的路径文件下面。
DimFileNameAsString
DimFileBackAsString
DimInfoAsString
FileName=mypath&"db1.mdb"
FileBack=mypath&"backup/db.bak"
Info="正在备份数据库"&FileName
BackupDatabaseFileName,FileBack,Info
MsgBox"备份数据库成功!",vbInformation,"提示"
结束语
本系统是在WindowsXP的环境下设计和调试的,并安装有VisualBasic开发工具和MicrosoftOfficeAccess数据库。经过调试证明:
1.本系统能满足学校田径运动会的需求,在录入的报名和比赛成绩数据准确的情况下,就能保证结果准确。不需要反复核对,减少了大量重复操作。
2.软件功能强大,系统运行稳定,而且软件处理的速度快,能够保证实时的数据处理,满足随时信息查询的需求。
3.由于水平和时间有限,本系统还有些不足之处,比如在比赛中的运动员成绩采用了四舍五入的方法。不支持格式转换和在线打印功能。
参考文献
[1]郑海春,谢维成.VisualBasic编程及实例分析教程.清华大学出版社.2007
[2]王新民.VisualBasic程序设计与数据库应用.电子工业出版社.2003
[3]吴永琢.看实例学编程-VisualBasic程序设计.西安电子科技大学出版社.2004
[4]萨师煊.数据库系统概论.高等教育出版社.2004
[5]张平.数据库应用基础ACCESS2003.人民邮电出版社.2007
[6]赵国玲,咎玲.ACCESS数据库应用.机械工业出版社.2006
[7]丛明礼.田径竞赛规则.人民体育
上一篇:
VB学校用电收费管理系统AC(论文和程序)
下一篇:
时间那么幽默,原来我们都为彼此活过