Access数据库VBA编程实例通用成绩处理系统Word格式.docx

上传人:b****2 文档编号:14927850 上传时间:2022-10-26 格式:DOCX 页数:14 大小:127.81KB
下载 相关 举报
Access数据库VBA编程实例通用成绩处理系统Word格式.docx_第1页
第1页 / 共14页
Access数据库VBA编程实例通用成绩处理系统Word格式.docx_第2页
第2页 / 共14页
Access数据库VBA编程实例通用成绩处理系统Word格式.docx_第3页
第3页 / 共14页
Access数据库VBA编程实例通用成绩处理系统Word格式.docx_第4页
第4页 / 共14页
Access数据库VBA编程实例通用成绩处理系统Word格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

Access数据库VBA编程实例通用成绩处理系统Word格式.docx

《Access数据库VBA编程实例通用成绩处理系统Word格式.docx》由会员分享,可在线阅读,更多相关《Access数据库VBA编程实例通用成绩处理系统Word格式.docx(14页珍藏版)》请在冰豆网上搜索。

Access数据库VBA编程实例通用成绩处理系统Word格式.docx

自动

及格人数

高分人数

平均分

单精度

及格率

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模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1