Access数据库VBA编程实例通用成绩处理系统Word格式.docx
- 文档编号:14927850
- 上传时间:2022-10-26
- 格式:DOCX
- 页数:14
- 大小:127.81KB
Access数据库VBA编程实例通用成绩处理系统Word格式.docx
《Access数据库VBA编程实例通用成绩处理系统Word格式.docx》由会员分享,可在线阅读,更多相关《Access数据库VBA编程实例通用成绩处理系统Word格式.docx(14页珍藏版)》请在冰豆网上搜索。
自动
及格人数
高分人数
平均分
单精度
及格率
4
高分率
2、窗体的设计与实现
窗体是Access2003数据库系统的一个重要对象。
前面介绍的数据导入、浏览记录、质量分析、显示查询结果、导出数据等都是在“数据表”视图中所进行的操作。
(1)通用成绩处理系统窗体:
图一
该窗体及命令按钮VBA代码:
PrivateSubForm_Load()
MsgBox("
使用前先进入“使用帮助”,花几分钟阅读一下使用说明,会使你的工作事半功倍!
"
)
EndSub
PrivateSub命令0_Click()
OnErrorGoToerr
DimdbAsDatabase
Setdb=CurrentDb()
Fori=0Todb.TableDefs.Count-1
Ifdb.TableDefs(i).Name="
学生成绩"
Then
DoCmd.DeleteObjectacTable,"
EndIf
Nexti
Setdb=Nothing
请将要导入的文件置于“成绩统计”文件夹中,文件名必须是“学生成绩”"
DoCmd.TransferSpreadsheetacImport,8,"
CurrentProject.Path&
"
\学生成绩.xls"
True
导入完成!
ExitSub
err:
找不到文件或文件格式不对"
PrivateSub命令11_Click()
DoCmd.OpenTable"
PrivateSub命令12_Click()
提示:
00表示年段,01表示一班,02表示二班....."
质量分析"
PrivateSub命令13_Click()
DoCmd.OpenQuery"
temp"
PrivateSub命令15_Click()
FollowHyperlinkCurrentProject.Path&
\功能说明.doc"
PrivateSub命令22_Click()
DoCmd.QuitacQuitSaveAll
PrivateSub命令6_Click()
DoCmd.OpenForm"
PrivateSub命令7_Click()
导出结果"
(2)质量分析窗体
各命令按钮VBA代码:
PrivateSub命令10_Click()
Dimkmzf(15)AsDouble
Dimkmmc(15)AsString
Fori=1To11
kmzf(i)=Val(Me.Controls("
txtzf"
&
i).Value)
Next
kmmc
(1)="
数学"
kmmc
(2)="
语文"
kmmc(3)="
英语"
kmmc(4)="
物理"
kmmc(5)="
化学"
kmmc(6)="
地理"
kmmc(7)="
政治"
kmmc(8)="
历史"
kmmc(9)="
生物"
kmmc(10)="
文综"
kmmc(11)="
理综"
DimkAsString
tt=False
k="
'
DimdbAsDAO.Database'
声明数据库对象变量
Setdb=CurrentDb()
db.Execute"
DELETE*FROM质量分析;
Fori=1To11
IfMe.Controls("
check"
i)<
>
0Then
Call统计(kmmc(i),kmzf(i),"
00"
)'
算年段三率
Forj=Val(TXTbjks.Value)ToVal(TXTbjks.Value)+bjzs-1
Ifj<
10Then
k="
0"
CStr(j)
Call统计(kmmc(i),kmzf(i),k)'
算班级三率
Else
k=CStr(j)
Call统计(kmmc(i),kmzf(i),k)
Nextj
Nexti
Iftt=FalseThen
统计完毕,请返回主菜单导出结果打印"
EndIf
PrivateSub命令97_Click()
Call查询
PrivateSub命令100_Click()
DoCmd.Close
PrivateSub命令111_Click()
DimkkAsString
Call计算总分
Fori=Val(TXTbjks.Value)ToVal(TXTbjks.Value)+Val(txtbjzs.Value)-1
Debug.Printi
Ifi<
kk="
CStr(i)&
*"
Debug.Printkk
CallRangBerechnen_bj("
kk,"
总分"
处理完毕!
PrivateSub命令98_Click()
tt=True
'
Call计算总分
CallRangBerechnen("
"
年段排名
IfttThen
(3)导出结果窗体
DoCmd.OutputToacOutputQuery,"
acFormatXLS,CurrentProject.Path&
\学生站队表.xls"
MsgBox"
导出完毕!
结果为“成绩统计\学生站队表.xls”"
PrivateSub命令1_Click()
DoCmd.OutputToacOutputTable,"
\质量分析.xls"
结果为“成绩统计\质量分析.xls”"
PrivateSub命令3_Click()
(4)通用模块代码
PublicttAsBoolean
PubliciAsInteger
PublicjAsInteger
PublicstrAsString
PublicbjzsAsInteger
Publickmzf(15)'
存放各科总分
Publickmmc(15)'
存放科目名称
Sub统计(kmAsString,kmzfAsDouble,jjAsString)
DimsumAsLong
DimintIAsLong
DimavgAsSingle
DimgfliAsSingle
DimjgliAsSingle
DimstrsqlAsString
DimrecNameAsDAO.Recordset'
声明记录集对象变量
DimstrNameAsDAO.Field'
声明字段对象变量
OnErrorGoTowrong
Setdb=CurrentDb()'
指定数据库为当前数据库
Ifjj="
SetrecName=db.OpenRecordset("
计算年段
Else
select*from学生成绩where班号like"
jj&
计算班级
SetstrName=recName.Fields(km)'
指定记录集“科目”字段
计算三率
jgrs=0'
sum=0'
总分
gfrs=0'
intI=0'
总人数
DoUntilrecName.EOF
sum=sum+IIf(IsNull(strName),0,strName)'
将“科目”字段读入数组
IfstrName>
=kmzf*0.6Then
jgrs=jgrs+1'
=0.8*kmzfThen
gfrs=gfrs+1'
高分的人数
intI=intI+1'
recName.MoveNext'
读取记录集的下一行记录
Loop
avg=sum/intI'
gfli=gfrs/intI'
jgli=jgrs/intI'
写入“质量分析”表
SetrecName=db.OpenRecordset("
将“”表读入记录集
recName.AddNew
recName.Fields(0)=jj
recName.Fields
(1)=km
recName.Fi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Access 数据库 VBA 编程 实例 通用 成绩 处理 系统