Access数据库VBA编程实例通用成绩处理系统
用access创建学生成绩管理系统
制作成绩维护窗体
还可在命令按 钮的属性窗口, 修改设置其他
属性
准备表、查询、报表 制作数据查询窗体
建应用系统的切换面板
上一页 下一页 返回主页 结束放映
还可在命令按钮的属性窗口,修改、设置按钮的属性,保存 运行窗体,添加查找记录命令按钮,完成窗体创建工作
在设计视图中修改窗体
单击设计按钮 选择需要修改的窗体
调整控件布局和大小调 整完毕保存文件
上 一 页 下 一 页 返回主页 结束放映
制作成绩维护窗体
使用窗口下方命令按钮可实现数据的定位 添加删除记录命令按钮控件 点击命令按钮,拖动鼠 标,放到窗体上
准备表、查询、报表 准备表、查询、报表
制作数据查询窗体 制作数据查询窗体
准备表、查询、报表
双击运行窗体, 确定参数查询
制作数据查询窗体
运行新建窗体
设计视图中修改窗体
结束放映
•1、我们的市场行为主要的导向因素,第一个是市场需求的导向,第二个是技术进步的导向,第三大导向是竞争对手的行为导向。 •2、市场销售中最重要的字就是“问”。 •3、现今,每个人都在谈论着创意,坦白讲,我害怕我们会假创意之名犯下一切过失。 •4、在购买时,你可以用任何语言;但在销售时,你必须使用购买者的语言。 •5、市场营销观念:目标市场,顾客需求,协调市场营销,通过满足消费者需求来创造利润。2021年11月4日星期四 2021/11/42021/11/42021/11/4 •6、我就像一个厨师,喜欢品尝食物。如果不好吃,我就不要它。2021年11月2021/11/42021/11/42021/11/411/4/2021 •7、我总是站在顾客的角度看待即将推出的产品或服务,因为我就是顾客。2021/11/42021/11/4November 4, 2021 •8、利人为利已的根基,市场营销上老是为自己着想,而不顾及到他人,他人也不会顾及你。2021/11/42021/11/42021/11/42021/11/4
VB+access成绩分析统计系统论文
摘要成绩分析统计系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
此系统设计采用Visual Basic 6.0作为数据库的前端开发工具,采用Microsoft Access 2000关系数据库管理系统作为后台建立数据库并对其进行维护,可以对数据库进行添加、修改、删除等操作。
系统能够完成对成绩的查询、录入、修改、删除等有关信息管理的操作,并能对成绩做出简单的分析。
除此之外,系统还能够对总成绩及单科成绩进行一些常规的统计,为学生成绩管理者减少繁重而枯燥的工作,节约人力和物力,以及避免一些因人的情绪烦躁而出现的失误。
本系统适合于班级成绩管理及统计分析,可以大大提高成绩管理者的工作效率。
关键字:成绩分析统计系统 Visual Basic 6.0Microsoft Access 2000 数据库目录摘要 (1)引言 (2)第一章相关知识1.1Visual Basic 6.0简介 (2)1.2数据库概论及ACCESS 2000简介 (3)1.3管理信息系统概述 (3)1.3.1管理信息系统的组成1.3.2 系统开发的一般方法1.3.3管理信息系统的开发过程第二章系统需求分析及可行性分析2.1设计概要 (4)2.2考虑因素 (5)2.2.1实用性2.2.2可靠性2.2.3稳定性2.3需求分析 (5)2.3.1进行需求分析,初步规划系统功能2.3.2确定管理系统所要具备的功能2.4可行性分析 (6)2.4.1技术可行性2.4.2经济可行性2.4.3操作可行性]2.4.4法律可行性第三章系统总统规划3.1系统规划 (6)3.2系统方框图 (7)3.3数据库和数据表的设计 (7)第四章系统详细设计4.1用户登录模块设计 (8)4.2系统封面模块设计 (9)4.3成绩管理模块设计 (10)4.3.1成绩查询模块4.3.2成绩录入模块4.3.3成绩修改模块4.3.4成绩删除模块4.4成绩分析模块设计 (19)4.4.1及格率4.4.2优秀率4.5成绩统计模块设计 (19)4.5.1总成绩统计4.5.2单科成绩统计4.6关于模块的设计第五章软件测试5.1 系统测试环境 (22)5.2系统总统测试 (22)第六章总结语致谢 (23)主要参考文献引言当今社会是一个讲究效率的信息时代,生活节奏的加快,人们为了节省时间提高工作效率,进行着各种改造、常识和分析,运用各种高科技手段来适应不断变化的社会,致使人们越来越趋向于信息化、数字化发展,各种各样的信息管理系统逐渐成为了人们工作中不可缺少的工具。
VBA操作Access数据库的综合案例
VBA操作Access数据库的综合案例在本篇文章中,我将介绍一个基于VBA的综合案例,该案例涉及使用VBA操作Access数据库。
我们将通过一个具体的示例来展示如何利用VBA编写代码,以实现对Access数据库的读取、写入和更新等操作。
这个案例将帮助读者了解和学习如何使用VBA来操作Access数据库,并在实际应用中发挥作用。
首先,我们需要明确本案例的目标。
我们将创建一个学生信息管理系统,该系统可以用于记录学生的个人信息及其成绩。
我们将使用Access数据库来存储学生信息,然后通过VBA编写代码来实现对数据库的操作。
在开始编写代码之前,我们需要先创建一个Access数据库,并在其中创建一个名为"Student"的表格,该表格包含以下字段:学生ID、学生姓名、性别、年龄、班级、数学成绩、英语成绩、总分。
接下来,我们将通过VBA来实现对这个表格的各种操作。
我们首先需要在VBA中引用Microsoft Access Object库,这样才能使用Access的相关功能。
在VBA编辑器中选择"工具"->"引用",然后勾选上"Microsoft Access 16.0 Object Library"。
这样我们就可以使用Access的对象、方法和属性了。
接下来,我们可以开始编写代码。
我们将以以下功能为例进行说明:1. 添加新学生信息:我们可以通过以下代码向数据库中添加新的学生信息。
```vbaSub AddNewStudent()Dim db As DAO.DatabaseDim rs As DAO.Recordset'read student informationDim studentID As LongDim studentName As StringDim gender As StringDim age As IntegerDim className As String'connect to the databaseSet db = CurrentDb()Set rs = db.OpenRecordset("Student", dbOpenDynaset) 'input student informationstudentID = InputBox("Enter Student ID:")studentName = InputBox("Enter Student Name:")gender = InputBox("Enter Gender:")age = InputBox("Enter Age:")className = InputBox("Enter Class Name:")'add new record to the tableWith rs.AddNew!StudentID = studentID!StudentName = studentName!Gender = gender!Age = age!ClassName = className.UpdateEnd With'close the recordset and the databasers.Closedb.CloseSet rs = NothingSet db = NothingMsgBox "New student added successfully!"End Sub```上述代码首先连接到数据库,然后通过InputBox函数获取用户输入的学生信息,在表格中添加新的记录,最后关闭数据库。
vb+access学生成绩管理系统课件
vb+access学生成绩管理系统
摘要
• 随着信息系统的普及,很多大、中、小学校都在开发自己的学生 成绩管理系统,以便对本学校学生的基本信息和学习情况进行管 理。
• 后台数据库使用Access,前台开发工具使用Visual Basic。 • 本系统采用目前比较流行的ADO数据访问技术,并将每个数据库
普通用户
Admin 用户
用户管理模块
管理自己的用户信息
① 管理自己的用户信息 ② 管理普通用户的用户信息
学生成绩管理模块
院系信息管理 学生信息管理 课程设置管理 学生成绩管理
vb+access学生成绩管理系统
所需实用技术
• 所选开发工具的基本编程方法。 • 基本的后台数据库管理方法,例如创建数据库、创建表、创建查
Field
vb+access学生成绩管理系统
Visual Basic数据库访问控件
• ADO Data控件 • DataList控件 • DataCombo控件 • DataGrid控件
vb+access学生成绩管理系统
数据库应用系统工程规划
• 本书实例中使用到的模块及其内容描述如下: • Const 用来管理工程中的全局常量。 • DbFunc 用来管理与数据库操作相关的函数,例如连接数据库、
• Provider 数据提供者。 • Data Source 指定数据库文件名,最后使用绝对路径。
vb+access学生成绩管理系统
Command对象
• Command对象定义了将对数据源执行的命令。
Connection Command Parameters
vb+access学生成绩管理系统
Access数据库VBA编程实例通用成绩处理系统
Access数据库VBA编程实例通⽤成绩处理系统Access数据库VBA编程实例——通⽤成绩处理系统诏安⼀中信息技术组吴瑶民同学们通过学习⾼中选修课4《数据库管理技术》第四章“开发数据库应⽤系统”,已初步学会了简单应⽤系统的设计,为了让同学们能进⼀步提升开发能⼒,以学⽣熟知的成绩统计为实例,结合VBA编写通⽤成绩处理系统。
⼀、系统总体分析与设计成绩录⼊采⽤EXCEL电⼦表格模板⽅式,各班以电⼦表格形式上缴年段,由年段汇总后导⼊通⽤成绩处理系统,然后由系统进⾏计算总分、排名次、质量分析后,通过导出功能导出EXCEL表格形式并打印出统计结果。
录⼊成绩与打印成绩都在教师悉熟的EXCEL电⼦表格进⾏,⽅便教师操作,数据的统计与分析由系统⾃动完成,提⾼⼯作效率。
将上述模块设计图⽰化后我们便可以得到所⽰的系统功能模块图:⼆、数据库分析与设计1.数据库数据结构分析通过对成绩统计过程分析及数据要求,创建该管理系统数据库,名为“通⽤成绩管理系统.mdb”,主要包含的数据表有“学⽣成绩”、“质量分析”两个表。
“学⽣成绩”为EXCEL 格式的“学⽣成绩”通过导⼊模块⽣成,EXCEL格式的“学⽣成绩”格式如下:通⽤成绩处理系统导⼊成绩(EXCEL格式)导⼊信息浏览统计分析三率浏览学⽣站队浏览退出系统导出学⽣站队表返回导出质量分析导出结果(EXCEL格式)使⽤帮助计算三率返回班级排名年段排名“质量分析”表结构设计如下表:字段名称数据类型字段⼤⼩⼩数位班级⽂本 2科⽬⽂本8与考⼈数数字长整形⾃动及格⼈数数字长整形⾃动⾼分⼈数数字长整形⾃动平均分数字单精度 2及格率数字单精度 4⾼分率数字单精度 42、窗体的设计与实现窗体是Access 2003数据库系统的⼀个重要对象。
前⾯介绍的数据导⼊、浏览记录、质量分析、显⽰查询结果、导出数据等都是在“数据表”视图中所进⾏的操作。
(1)通⽤成绩处理系统窗体:图⼀该窗体及命令按钮VBA代码:Private Sub Form_Load()MsgBox ("使⽤前先进⼊“使⽤帮助”,花⼏分钟阅读⼀下使⽤说明,会使你的⼯作事半功倍!")End SubPrivate Sub 命令0_Click()On Error GoTo errDim db As DatabaseSet db = CurrentDb()For i = 0 To db.TableDefs.Count - 1If db.TableDefs(i).Name = "学⽣成绩" ThenDoCmd.DeleteObject acTable, "学⽣成绩"End IfNext iSet db = NothingMsgBox ("请将要导⼊的⽂件置于“成绩统计”⽂件夹中,⽂件名必须是“学⽣成绩”") DoCmd.TransferSpreadsheet acImport, 8, "学⽣成绩", CurrentProject.Path & "\学⽣成绩.xls", TrueMsgBox ("导⼊完成!")Exit Suberr:MsgBox ("找不到⽂件或⽂件格式不对")End SubPrivate Sub 命令11_Click()DoCmd.OpenTable "学⽣成绩"End SubPrivate Sub 命令12_Click()MsgBox ("提⽰:00表⽰年段,01表⽰⼀班,02表⽰⼆班.....")DoCmd.OpenTable "质量分析"End SubPrivate Sub 命令13_Click()DoCmd.OpenQuery "temp"End SubPrivate Sub 命令15_Click()FollowHyperlink CurrentProject.Path & "\功能说明.doc" End SubPrivate Sub 命令22_Click()DoCmd.Quit acQuitSaveAllEnd SubPrivate Sub 命令6_Click()DoCmd.OpenForm "质量分析"End SubPrivate Sub 命令7_Click()DoCmd.OpenForm "导出结果"End Sub(2)质量分析窗体各命令按钮VBA代码:Private Sub 命令10_Click()Dim kmzf(15) As DoubleDim kmmc(15) As StringFor i = 1 To 11kmzf(i) = Val(Me.Controls("txtzf" & i).Value)Nextkmmc(1) = "数学"kmmc(2) = "语⽂"kmmc(3) = "英语"kmmc(4) = "物理"kmmc(5) = "化学"kmmc(6) = "地理"kmmc(7) = "政治"kmmc(8) = "历史"kmmc(9) = "⽣物"kmmc(10) = "⽂综"kmmc(11) = "理综"Dim k As Stringtt = Falsek = ""'Dim db As DAO.Database '声明数据库对象变量Set db = CurrentDb()db.Execute "DELETE * FROM 质量分析;"For i = 1 To 11If Me.Controls("check" & i) <> 0 ThenCall 统计(kmmc(i), kmzf(i), "00") '算年段三率For j = Val(TXTbjks.Value) To Val(TXTbjks.Value) + bjzs - 1 If j < 10 Then k = "0" & CStr(j)Call 统计(kmmc(i), kmzf(i), k) '算班级三率Elsek = CStr(j)Call 统计(kmmc(i), kmzf(i), k)End IfNext jEnd IfNext iIf tt = False ThenMsgBox ("统计完毕,请返回主菜单导出结果打印")End IfEnd SubPrivate Sub 命令97_Click()Call 查询End SubPrivate Sub 命令100_Click()DoCmd.CloseEnd SubPrivate Sub 命令111_Click()Dim kk As StringCall 计算总分For i = Val(TXTbjks.Value) To Val(TXTbjks.Value) + Val(txtbjzs.Value) - 1 Debug.Print iIf i < 10 Thenkk = """0" & CStr(i) & "*"""Elsekk = """" & CStr(i) & "*"""End IfDebug.Print kkCall RangBerechnen_bj("学⽣成绩", kk, "总分")Next iMsgBox ("处理完毕!")End SubPrivate Sub 命令98_Click()tt = True'Call 计算总分Call RangBerechnen("学⽣成绩", "总分") '年段排名Call 查询If tt ThenMsgBox ("统计完毕,请返回主菜单导出结果打印")End IfEnd Sub(3)导出结果窗体各命令按钮VBA代码:Private Sub 命令0_Click()DoCmd.OutputTo acOutputQuery, "temp", acFormatXLS, CurrentProject.Path & "\学⽣站队表.xls" MsgBox "导出完毕!结果为“成绩统计\学⽣站队表.xls”"End SubPrivate Sub 命令1_Click()DoCmd.OutputTo acOutputTable, "质量分析", acFormatXLS, CurrentProject.Path & "\质量分析.xls" MsgBox "导出完毕!结果为“成绩统计\质量分析.xls”"End SubPrivate Sub 命令3_Click()DoCmd.CloseEnd Sub(4)通⽤模块代码Public tt As BooleanPublic i As IntegerPublic j As IntegerPublic str As StringPublic bjzs As IntegerPublic kmzf(15) '存放各科总分Public kmmc(15) '存放科⽬名称Sub 统计(km As String, kmzf As Double, jj As String)Dim sum As LongDim intI As LongDim avg As SingleDim gfli As SingleDim jgli As SingleDim strsql As StringDim db As DAO.Database '声明数据库对象变量Dim recName As DAO.Recordset '声明记录集对象变量Dim strName As DAO.Field '声明字段对象变量On Error GoTo wrongSet db = CurrentDb() '指定数据库为当前数据库If jj = "00" ThenSet recName = db.OpenRecordset("学⽣成绩") '计算年段ElseSet recName = db.OpenRecordset("select * from 学⽣成绩 where 班号 like " & """" & jj & "*" & """") '计算班级End IfSet strName = recName.Fields(km) '指定记录集“科⽬”字段' 计算三率jgrs = 0 '及格⼈数sum = 0 '总分gfrs = 0 '⾼分⼈数intI = 0 '总⼈数Do Until recName.EOFsum = sum + IIf(IsNull(strName), 0, strName) ' 将“科⽬”字段读⼊数组If strName >= kmzf * 0.6 Thenjgrs = jgrs + 1 '及格⼈数End IfIf strName >= 0.8 * kmzf Thengfrs = gfrs + 1 '⾼分的⼈数End IfintI = intI + 1 '总⼈数recName.MoveNext '读取记录集的下⼀⾏记录Loopavg = sum / intI '平均分gfli = gfrs / intI '⾼分率jgli = jgrs / intI '及格率'写⼊“质量分析”表Set recName = db.OpenRecordset("质量分析") '将“”表读⼊记录集recName.AddNew recName.Fields(0) = jjrecName.Fields(1) = kmrecName.Fields(2) = intIrecName.Fields(3) = jgrsrecName.Fields(4) = gfrsrecName.Fields(5) = avgrecName.Fields(6) = jglirecName.Fields(7) = gflirecName.UpdateExit Subwrong:MsgBox ("找不到科⽬成绩或者班级总数设置不对!请检查并重新设置")i = 11: j = 18000: tt = TrueEnd Sub'⽣成temp查询Public Sub 查询()Dim db As DAO.Database '声明数据库对象变量Dim qry As DAO.QueryDefSet db = CurrentDb()For i = 0 To db.QueryDefs.Count - 1If db.QueryDefs(i).Name = "temp" ThenDoCmd.DeleteObject acQuery, "temp"End IfNext iSet qry = db.CreateQueryDef("temp")qry.SQL = "SELECT * FROM 学⽣成绩 ORDER BY 总分 DESC"Set db = NothingEnd SubPublic Sub 计算总分()Dim db As DAO.Database '声明数据库对象变量Dim recName As DAO.Recordset '声明记录集对象变量Dim strName As DAO.Field '声明字段对象变量kmmc(1) = "数学"kmmc(2) = "语⽂"kmmc(3) = "英语"kmmc(4) = "物理"kmmc(5) = "化学"kmmc(6) = "地理"kmmc(7) = "政治"kmmc(8) = "历史"kmmc(9) = "⽣物"kmmc(10) = "⽂综"kmmc(11) = "理综"Set db = CurrentDb() '指定数据库为当前数据库Set recName = db.OpenRecordset("学⽣成绩") '将“”表读⼊记录集On Error GoTo errDo Until recName.EOFsum = 0For i = 1 To 11If Form_质量分析.Controls("check" & i) <> 0 Thensum = sum + IIf(IsNull(recName.Fields(kmmc(i))), 0, recName.Fields(kmmc(i))) End IfNext irecName.EditrecName.Fields("总分") = sumrecName.UpdaterecName.MoveNextLoopExit Suberr:MsgBox "找不到成绩!请重新设置科⽬"End Sub'计算名次Public Function RangBerechnen(TableName As String, LeistungFeld As String) As Boolean On Error GoTo Err_Rang Dim db As DAO.DatabaseDim iRang As LongDim iLeistung As IntegerDim iGleicherRang As IntegerSet db = CurrentDbSet rst = db.OpenRecordset("SELECT * FROM " & TableName & " ORDER BY " & LeistungFeld & " DESC", dbOpenDynaset)iRang = 1With rstDo While Not .EOFiLeistung = .Fields(LeistungFeld).Edit!年名 = iRang.Update.MoveNextIf .EOF Then Exit DoiGleicherRang = 0Do While (.Fields(LeistungFeld) = iLeistung).Edit!年名 = iRang.UpdateiGleicherRang = iGleicherRang + 1.MoveNextIf .EOF Then Exit DoLoopiRang = iRang + 1 + iGleicherRangLoop.CloseEnd WithRangBerechnen = TrueSet db = NothingSet rst = NothingExit FunctionErr_Rang:RangBerechnen = FalseResume Exit_RangEnd Function'计算班级名次Public Function RangBerechnen_bj(TableName As String, tiaoj As String, LeistungFeld As String) As BooleanOn Error GoTo Err_RangDim rst As DAO.RecordsetDim iRang As LongDim iLeistung As IntegerDim iGleicherRang As IntegerDim sqlstr As Stringsqlstr = "SELECT * FROM " & TableName & " where 班号 like " & tiaoj & " ORDER BY " & LeistungFeld & " DESC;" Set db = CurrentDbSet rst = db.OpenRecordset(sqlstr, dbOpenDynaset)iRang = 1With rstDo While Not .EOFiLeistung = .Fields(LeistungFeld).Edit!班名 = iRang.Update.MoveNextIf .EOF Then Exit DoiGleicherRang = 0Do While (.Fields(LeistungFeld) = iLeistung).Edit!班名 = iRang.UpdateiGleicherRang = iGleicherRang + 1.MoveNextIf .EOF Then Exit DoLoopiRang = iRang + 1 + iGleicherRang Loop.CloseEnd WithRangBerechnen_bj = TrueSet db = NothingSet rst = NothingExit_Rang:Exit FunctionErr_Rang:RangBerechnen_bj = False Resume Exit_RangEnd Function。
Access数据库VBA编程实例通用成绩处理系统
Access数据库VBA编程实例通用成绩处理系统Access Database VBA Programming Example - General Score Processing SystemBy Wu Yaomin。
n Technology Group。
Zhaoan No.1 Middle SchoolAfter studying Chapter 4 "Developing Database n Systems" of the elective course "Database Management Technology" in high school。
students have learned how to design simple n systems。
In order to XXX capabilities。
a general score processing system is developed using VBA。
with score XXX.I。
Overall Analysis and Design of the SystemThe score entry adopts the EXCEL electronic spreadsheet template method。
Each class submits the electronic spreadsheet in the form of a grade level。
which is then imported into the generalscore processing system after being summarized by the grade level。
The system then calculates the total score。
ranking。
and quality analysis。
基于Access VBA的成绩查询与打印系统的设计与实现
基于AccessVBA的成绩查询与打印系统的设计与实现作者:黄崑刘晓娟来源:《中国教育信息化·基础教育》2009年第08期摘要:针对中小学成绩管理的现实需求,本文探讨了基于Access查询对象和VBA编程进行成绩查询与通知单打印管理的系统设计与实现的方案,并重点介绍了采用VBA ADO方法连接和读写数据库的实现原理,以及基于交叉表查询和VBA编程的成绩单打印原理。
关键词:Access;ADO;成绩查询;批量打印;邮件合并中图分类号:TP311.1 文献标识码:A 文章编号:1673-8454(2009)16-0069-03一、问题提出随着计算机技术与网络技术的快速发展,中小学教务管理工作的信息化建设也具备了更广阔的发展空间。
教务管理的信息化建设有助于提高工作效率和管理水平。
在中小学的教务管理工作中,学生成绩的管理是非常基础而又相对繁琐的工作之一。
为了提高成绩输入、处理、保存与输出的效率,可以借助目前流行的软件和工具实现。
从技术层面上看,成绩管理的基础是数据库技术,MS Access就是使用极为普遍的一款桌面型关系数据库管理系统。
本系统主要面向中小学成绩管理的需求,基于Access查询对象和VBA编程设计并实现一个用于增、删、改、查的成绩管理系统,该系统提供以报表和Word文档方式的学生成绩通知单的打印输出功能。
本系统主要应用的技术包括Access 交叉表查询、VBA程序设计以及Word邮件合并技术。
通过这几种技术的综合运用,实现服务于查询和打印目的的Access、Excel、Word 的集成联动系统。
二、基本思路为了实现本系统的目标,主要解决以下三方面问题:(1)多门课程的一次性输入问题:根据成绩关系模型的特点,学生信息、成绩信息与课程信息会独立分成三张数据表进行设计。
如果以Access的交互式设计视图创建成绩登记窗体,只能够逐科进行分数的登记,无法一次性输入多门课程。
为了解决这一问题,可以采用VBA提供的ActiveX Data Object(简称ADO),它是一个用于存取数据源的COM组件,它提供了编程语言和统一数据访问方式OLE DB的一个中间层。
access数据库成绩管理系统课程设计
access数据库成绩管理系统课程设计一、课程设计概述本次课程设计的主要目的是设计一个基于Access数据库的成绩管理系统,该系统可以实现学生信息的录入、成绩查询、统计分析等功能。
本系统采用Visual Basic for Applications(VBA)作为开发语言,通过对Access数据库进行操作实现各项功能。
二、系统需求分析1.用户需求分析本系统主要面向学校教师和管理员,他们需要能够方便地管理学生信息和成绩数据。
因此,系统需要具有以下功能:(1)学生信息录入:管理员可以通过系统录入学生的基本信息,包括姓名、性别、出生日期、联系方式等。
(2)成绩录入:教师可以通过系统录入每个学生的各科成绩。
(3)成绩查询:教师和管理员可以通过系统查询某个学生或某门课程的成绩。
(4)统计分析:管理员可以通过系统进行各种统计分析,例如班级平均分、不及格人数等。
2.技术需求分析为了实现以上功能,本系统需要具备以下技术支持:(1)Access数据库:作为数据存储和管理工具,Access数据库是本系统必不可少的组件。
(2)VBA编程语言:VBA是一种基于Visual Basic语言的宏编程语言,在Access中可以通过VBA编写代码实现各种功能。
(3)Windows操作系统:本系统需要在Windows操作系统下运行。
三、系统设计1.数据库设计本系统的数据库主要包括两个表格:学生信息表格和成绩信息表格。
其中,学生信息表格包括学生的基本信息,如姓名、性别、出生日期、联系方式等;成绩信息表格包括每个学生各科成绩的详细数据,如语文、数学、英语等科目的成绩。
两个表格之间通过学号进行关联。
2.界面设计本系统的界面主要分为以下几个部分:(1)登录界面:用户需要输入用户名和密码才能进入系统。
(2)主界面:包括菜单栏和工具栏,用于导航到各个功能模块。
(3)学生信息录入界面:管理员可以在此界面录入新的学生信息。
(4)成绩录入界面:教师可以在此界面录入每个学生各科的成绩数据。
利用Access制作学生考试成绩单方法
利用Access制作学生考试成绩单方法利用Access制作学生成绩单在学校期中或期末考试结束后,一般都是利用Excel统计学生的成绩。
现在我介绍给大家,如何利用Access中的“报表”对象来实现。
第一步、将Excel中的成绩表导入到Access文件的表中1. 假如在D盘中,有一名为“成绩总表”的Excel文件,其中含有如图1所示的一个名为“成绩表”的工作表。
在“成绩总表”的Excel文件的同一目录下,新建一个名为“班级成绩单”的Access文件。
2. 打开这个Access文件,在对象栏中选择“表”,然后单击数据库窗口工具栏上的“新建”按钮。
3. 在新建表对话框中选择“导入表”,单击“确定”,然后在弹出的导入对话框中,选择文件类型为“Microsoft Execl”,在“查找范围”中选择.Excel文件“成绩总表”所在的目录(我这里为D:),再选择要导入的“成绩总表”文件;最后单击下面的“导入”按钮。
进入“导入数据表向导”对话框。
4. 选择要导入的“成绩表”,按“下一步”;选中“第一行包含列标题”前面的复选框,再按“下一步”,进入“请选择数据的保存位置”页,选择默认值“新表中”;按“下一步”,进入“字段选择”页,保持默认值不变;按“下一步”,选择“不要主键”。
5. 按“下一步”,在“导入到表”输入框中输入表名,我这里输入的是“成绩表”。
按“完成”按钮,此时系统会弹出一个导入完成的对话,按“确定”。
这样就成功地把数据从Excel文件导入到Access的表中了。
第二步、利用“报表”创建成绩通知单1. 在对象栏中选择“报表”,单击数据库窗口工具栏上的“新建”按钮;在弹出的新建报表对话框中,选择“自动创建报表“纵栏式”,并在“对象数据的来源表或查询”提示的右面,选中“成绩表”,然后单击“确定”。
2. 随后就会自动生成一个简单的报表预览,点击预览窗口右上角的关闭按钮,系统会弹出一个询问对话框,问你要不要保存报表,单击“是”后,在弹出的报表名称中输入名字,如“成绩通知单”,再单击“确定”,返回数据库窗口,会看到已经建立好了一个名为“成绩通知单”的报表。
案例一:学生信息管理系统VB+access_2003
案例一学生信息管理系统摘要:随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。
管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。
学生成绩管理系统主要提供方便高效的管理功能,该实现以下一些基本功能:1.系统管理模块:维护系统的正常运行和安全性设置,包括添加用户、修改密码、删除用户等等。
2.班级管理模块:实现对全校班级的管理工作,包括:班级游览、班级添加、班级修改等,这三个功能模块各自独立,完成学校的全部班级的管理。
3.学生学籍管理模块:实现对学生的个人信息的管理工作,包括学籍添加、学籍查询、学籍修改等功能,从而方便学校管理部门对学校的基本情况的快速查询和了解。
4.课程管理模块:该模块对各个班级的课程进行设置,并可在其中设置各门课程的教材选用情况,方便了学校教材管理部门和教务处的教学管理人员的工作。
该模块包括基本课程设置和班级课程设置两个模块。
5.成绩管理模块:检验学生学习情况的一个主要手段,本模块包括考试类型设置,共有期中考试和期未考试两种类型,还设置了成绩添加、成绩查询、成绩浏览、成绩修改等功能模块。
6.奖惩信息管理模块:奖惩信息是用来督促学习学习活动的一种手段,包括奖惩信息的添加和修改。
7.个人信息查询模块:用于学生个人信息的查询,分为奖惩信息查询和成绩查询两个模块。
8. 退出模块:此模块完成程序的退出。
该程序界面友好,功能强大,适合实际应用。
关键字:数据库ACCESS数据库学生信息操作 VB编程1.概述该信息管理系统可以说是一个综合性的学校学生管理系统,它集成了学生学籍管理系统、学生成绩管理系统、学生档案管理系统等多种功能,因而具有较强的实用性和先进性。
项目开发背景:学生信息管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,对学生来说也可以轻松的查阅自己在校的成绩以及信息等.但是一直以来人们都是靠传统人工的方式管理学生成绩,这种管理方式存在着许多缺点,如:效率低,保密性差,另外时间一长,将产生大量的文件和数据,这对于查找,更新和维护都带来了不少的困难。
基于VBA开发成绩分析管理系统
目录前言 (1)第一章概述 (2)1.1系统开发背景 (2)1.2 系统开发环境与开发工具 (2)1.3 系统开发目标 (2)1.4 可行性分析 (2)1.4.1 技术上可行性 (2)1.4.2 运行上可行性 (3)第二章需求分析 (4)2.1 成绩分析系统现状分析 (4)2.2 基于VBA技术的应用 (4)2.2.1 VBA简介 (4)2.2.2 VBA与其他开发技术的比较 (4)第三章成绩分析系统设计与实现 (5)3.1 系统结构 (5)3.2 程序逻辑 (6)3.2.1 系统E-R图 (6)3.2.2 查询模块流程图 (6)3.2.3 分析模块流程图 (7)3.3 主程序设计说明 (7)3.3.1 用户登录模块 (7)3.3.2 系统设计 (9)3.3.3 数据错误检查及维护 (29)第四章成绩分析系统系统测试 (32)4.1 概述 (32)4.2 测试的原则和目标 (32)4.2.1测试的原则 (32)4.2.2测试的目标 (32)4.3 测试方法 (33)4.3.1 界面测试 (33)4.3.2 性能测试 (33)4.4 系统的优点与不足 (34)第五章总结与展望 (35)参考文献 (36)摘要随着计算机技术的飞速发展,计算机的应用已经越来越普及,其渗透到人类社会的各个领域并发挥着重要的作用。
同样,运用计算机对学生成绩信息进行分析与管理已经成为各大院校的迫切需求。
学生成绩信息是教育单位不可或缺的一部分,然而使用传统的人工方式对学生成绩进行分析存在着许多缺点,比如说误差性大、效率低、成本高等,这时迫切需要一种能够自动对学生成绩信息进行分析管理的方法。
运用成绩分析系统对学生成绩信息进行分析,具有人工分析无法比拟的优点,例如:检索迅速、可靠性高、成本低等,这些优点能够极大的提高管理者对学生成绩管理的效率,使得学校的管理正规化、科学化。
而运用基于Visual Basic发展而来的VBA技术,不但继承了VB的开发机制,而且具有与VB相似的语言结构,它具有效率高、简单易学及功能强大的特点。
学生成绩管理系统-C++连接ODBC与ACCESS汇编
目录1 设计要求 (1)2 数据库设计 (1)2.1 概念设计 (1)2.2 逻辑设计与物理结构的设计 (2)2.3 数据库的输入 (2)3 程序设计 (4)3.1 学生信息操作 (5)3.2 学生成绩操作 (13)4 调试报告 (26)5 心得体会 (26)6 参考文献 (26)学生成绩管理系统1 设计要求管理信息系统MIS(Management Information System),在强调管理, 强调信息的现代社会中越来越得到普及, 如: 人事管理、学生管理系统、工资管理系统等。
常用的MIS系统都是基于数据库操作, 实现信息的查询、增加、删除、修改等。
学生成绩管理系统是用AECESS数据库进行数据库的设计和添加数据, 在设置数据源(ODBC)建立数据库与程序的连接后, 利用VC开发可视化界面完成基于数据库的操作, 实现学生信息的查询、增加、删除、修改和成绩信息的查询、增加、删除、修改、排序、统计等功能, 从而实现学生成绩信息的多方位显示, 方便管理者对学生成绩的管理。
2 数据库设计2.1 概念设计根据设计要求, 要对学生信息和成绩进行操作, 所以系统实体包括学生基本信息表和课程基本信息表。
学生成绩管理系统中它们的联系是一个学生可以选修多门课程, 一门课程可以被多个学生选修, 学生和课程之间是多对多的关系, 。
由以上分析可以得该系统的E-R关系图:2.2 逻辑设计与物理结构的设计根据概念设计中的E-R图, 可设计三个表, 其关系模型如下: 学生基本信息表: 学号, 姓名, 性别, 年龄, 系别课程基本信息表: 课程号, 课程名, 课时成绩表:学号, 课程号, 成绩在ACCESS中定义三个表的物理结构如下:图2 学生信息表物理结构图3 课程信息表物理结构图4 成绩表物理结构2.3 数据库的输入在ACCESS中定义好物理结构后就可以输入数据, 同时根据系统的要求, 用ACCESS做了两个查询, 分别是成绩查询和平均分查询, 为以后写程序的方便, 对平均分查询进行了按平均分从高到低排序操作。
用ACCESS管理学生成绩
用ACCESS管理学生成绩用ACCESS管理学生成绩一、建立学生成绩数据库1、启动ACCESS2000,选择新建一个空ACCESS数据库,并将数据库命名为"2003届学生第一学期成绩数据库"。
2、在数据库窗口中单击"对象栏"项目区中的"表"选项,在"数据库"窗口工具栏上单击"新建"按钮,在弹出的"新建表"对话框中选择"设计视图"选项,然后单击"确定"按钮。
3、在"表1:表"设计视图窗体中的"字段名称"栏中依次输入学生成绩表项目:"学号"、"班级"、"姓名"、"语文"、"数学"、"英语"、"物理"、"化学"、"政治"、"历史"、"地理",它们的数据类型除"班级"和"姓名"字段定义为"文本"类型外,其余的字段均定义为"数字"类型,为每个字段定义好合适的字段大小。
学生成绩统计一般都是以本年级为单位,所以,我们设计在"班级"字段输入框中提供一个下拉列表,当需要输入班级数据时,就可以从下拉列表中进行选择,设置方法是:选中"班级"字段,在字段属性窗口中选择"查阅"选项卡,在"显示控件"栏内选择"列表框",在"行来源类型"栏中选择"值列表",在"行来源"栏中输入单位所有的部门名称"一班;二班;三班;四班"(请注意:标点符号请在英文状态下输入,引号内为输入内容,下同),此表我们就称其为"学生成绩表"。
用VB制作学生成绩管理系统
摘要该学生成绩管理系统是用Visual Basic 制作的,该系统可以实现教师进行对学生的成绩管理,添加学生用户以及可以查询学生的成绩;还实现学生用户通过登录系统可以查询到自己的各科课程成绩以及修改自己的登录密码;还有的是教师用户和学生用户可以退出系统。
该系统采用了对窗体、基本控件的应用,选择结构的if语句,循环结构的循环语句fo r…next结构,菜单设计,过程,数据文件来构建整个程序。
在此报告中重点叙述了学生成绩系统的各个功能,特别是学生的成绩查询和密码修改以及教师和学生的登录。
整个系统会以系统结构图、程序流程图、功能模块,让大家能知晓该系统的功能.摘要 (1)第一章任务概述 (3)1.1、目标 (3)1.2、需求分析 (3)1.2。
1、鼠标操作 (3)1.2。
2、键盘操作 (3)第二章总体设计 (4)2.1、系统结构图 (4)第三章详细设计 (5)3。
1、程序运行后的界面 (5)3.2、教师的登录界面 (5)3。
3、教师对学生的成绩管理的界面 (6)3.4、教师对学生添加用户的界面 (8)3。
5、学生的登录界面 (10)3.6、学生查询成绩的界面 (12)3.7、学生修改密码的界面 (13)小结 (15)第一章任务概述1.1、目标本系统的目标是建立一套可以对学生的成绩的管理、查询学生的各科成绩、对学生的密码修改的学生成绩管理系统。
该系统可以帮助我们更方便的管理学生的成绩,替代了以前的手工操作管理学生的成绩,节约我们珍贵的时间。
1。
2、需求分析根据该系统的需求分析,系统的需求可以分为以下的几个方面:1.2。
1、鼠标操作你可以利用鼠标点击界面的某些按钮来实现对系统的有关操作.1.2.2、键盘操作你可以利用键盘对该系统的某些操作。
第二章总体设计2。
1、系统结构图图2-1 系统结构图第三章详细设计3。
1、程序运行后的界面图3—1 系统界面3.2、教师的登录界面图3-2 教师登录界面代码:Private Sub Command1_Click()Dim usename As String,pwd As String’定义用户名和用户密码usename = LCase(Trim(T1。
Access-VBA数据库编程(ADO)-详细
Code=rsStudents.Fields(0)
2021/10/10
12
7.3 引用记录字段
[例7-1] 建立名为ADO的模块,编写如下过程。运 行该过程后,输出对话框显示“导师”表中第一 位教师的编号和姓名。
2021/10/10
13
7.3 引用记录字段
记录集更多的应用是在窗体对象上:建立一个空 白窗体→设计各个控件→编程引用记录集当前记 录的相关字段或将字段的值通过控件显示
Private Sub Command3_Click() rsTeacher.MoveNext If rsTeacher.EOF Then rsTeacher.MoveFirst End If
End Sub
方法2:若记录 集的EOF属性为 True,则回到末 记录
Private Sub Command3_Click() rsTeacher.MoveNext If rsTeacher.EOF Then rsTeacher. MoveLast End If
rsStudents.Close cnGraduate.Close Set rsStudents=Nothing Set cnGraduate=Nothing
上述语句不是必须的。应用程序终止运行时,系 统会自动关闭并清除这两个对象。
2021/10/10
11
7.3 引用记录字段
任何对记录集的访问都是针对当前记录进行的。 打开记录集时默认的当前记录为第1条记录。
Recordset记录集的BOF和EOF属性用于判断记录指针 是否处于有记录的正常位置
➢ 记录指针将指向最后一条记录之后,EOF属性为True ➢ 记录指针将指向第一条记录之前,BOF属性为True ➢ BOF和EOF属性的值均为True,表示记录集为空
VB+ACcess学生成绩管理系统-开题报告
VB ACcess学生成绩管理系统—开题报告所选课题的来源、目的和意义:随着学校规模的不断扩大,学生数量的急剧增加,有关学生的各种信息量也在不断成倍增长.面对庞大的信息量,就需要有学生成绩管理系统来提高学生管理工作的效率。
我们计算机学院尽管已开发并利用学生成绩管理系统,但开发的系统不具有通用性,科目是固定的,拿到其他院系不能使用或需要修改后才能使用.所以我想借本次毕业设计之际,为我校开发一个不仅适用本校各系而且适用于各校的通用高校学生成绩管理系统,能有效地对成绩进行分析,通过设计这样的系统,我们可以做到学生成绩处理的规范管理和快速查询,从而减少工作量,提高工作效率。
课题研究的主要内容及拟解决的问题:主要内容:要求系统拥有成绩录入管理、教师权限管理、学生成绩的查询和修改等等,而且设计的模块也很多,比如信息统计模块,报表设计模块,打印输出模块,模糊查询模块等等。
拟解决的问题:1、掌握每个学生每一门课的成绩信息,并记录在数据库中以便其他管理信息系统的使用;2、分权限的管理.在成绩管理中,教师可以对任何一个学生的成绩进行查询和管理;但是对学生类用户,它只能对自己的成绩进行查看,而且不能对其进行更改。
3、教师类用户可以对成绩按照课程进行管理,可以对每一门课所修的学生进行添加、删除和修改;4、教师类用户可以对成绩按照学生进行管理,可以对每一门课所修的学生进行添加、删除和修改;5、可以针对某一门课的学生列表及其成绩生成报表,并打印;6、可以针对某一个学生所选课程及其对应的成绩生成报表,并打印。
设计方案及所需的主要设备仪器及其数量:their own conditions to develop the correct road, the maximum to avoid investment risk, gain profit。
(three) vigorously promote the brand。
To establish brand awareness, awareness of the use of brand,brand value, brand acquisition performance, enhance the competitive strength。
VB+access成绩分析统计系统论文
摘要成绩分析统计系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
此系统设计采用Visual Basic 6.0作为数据库的前端开发工具,采用Microsoft Access 2000关系数据库管理系统作为后台建立数据库并对其进行维护,可以对数据库进行添加、修改、删除等操作。
系统能够完成对成绩的查询、录入、修改、删除等有关信息管理的操作,并能对成绩做出简单的分析。
除此之外,系统还能够对总成绩及单科成绩进行一些常规的统计,为学生成绩管理者减少繁重而枯燥的工作,节约人力和物力,以及避免一些因人的情绪烦躁而出现的失误。
本系统适合于班级成绩管理及统计分析,可以大大提高成绩管理者的工作效率。
关键字:成绩分析统计系统 Visual Basic 6.0Microsoft Access 2000 数据库目录摘要 (1)引言 (2)第一章相关知识1.1Visual Basic 6.0简介 (2)1.2数据库概论及ACCESS 2000简介 (3)1.3管理信息系统概述 (3)1.3.1管理信息系统的组成1.3.2 系统开发的一般方法1.3.3管理信息系统的开发过程第二章系统需求分析及可行性分析2.1设计概要 (4)2.2考虑因素 (5)2.2.1实用性2.2.2可靠性2.2.3稳定性2.3需求分析 (5)2.3.1进行需求分析,初步规划系统功能2.3.2确定管理系统所要具备的功能2.4可行性分析 (6)2.4.1技术可行性2.4.2经济可行性2.4.3操作可行性]2.4.4法律可行性第三章系统总统规划3.1系统规划 (6)3.2系统方框图 (7)3.3数据库和数据表的设计 (7)第四章系统详细设计4.1用户登录模块设计 (8)4.2系统封面模块设计 (9)4.3成绩管理模块设计 (10)4.3.1成绩查询模块4.3.2成绩录入模块4.3.3成绩修改模块4.3.4成绩删除模块4.4成绩分析模块设计 (19)4.4.1及格率4.4.2优秀率4.5成绩统计模块设计 (19)4.5.1总成绩统计4.5.2单科成绩统计4.6关于模块的设计第五章软件测试5.1 系统测试环境 (22)5.2系统总统测试 (22)第六章总结语致谢 (23)主要参考文献引言当今社会是一个讲究效率的信息时代,生活节奏的加快,人们为了节省时间提高工作效率,进行着各种改造、常识和分析,运用各种高科技手段来适应不断变化的社会,致使人们越来越趋向于信息化、数字化发展,各种各样的信息管理系统逐渐成为了人们工作中不可缺少的工具。
vb和SQL做的学生成绩管理系统1
Form1的代码:Private Sub Command1_Click()Unload MeForm3.ShowEnd SubPrivate Sub Command2_Click()Unload MeForm2.ShowEnd SubPrivate Sub Command3_Click()If MsgBox("确定退出管理系统?", _vbQuestion + vbYesNo + vbDefaultButton2, "警告!") = vbYes ThenEndEnd IfEnd SubPrivate Sub Picture1_Click()End SubPrivate Sub Timer1_Timer()Command4.Caption = Time$()End SubPrivate Sub Form_Load()Timer1.Interval = 1000Timer1.Enabled = TrueEnd SubForm2的代码:Private Sub Command1_Click()Adodc1.Recordset.MoveFirstAdodc1.Recordset.Find "用户名='" & Text1.Text & "'"If Adodc1.Recordset.EOF = True Then Adodc1.Recordset.MoveFirstIf ((Trim(Text1.Text)) = (Trim(Text3.Text))) And ((Trim(Text2.Text)) = (Trim(Text4.Text))) ThenAdodc1.Enabled = FalseForm4.Text3.Text = Text1.TextUnload MeForm8.ShowElseMsgBox "非法的账号!", vbOKOnly + vbExclamation, "请重新输入!"Text1.Text = ""Text2.Text = ""Text1.SetFocusEnd IfEnd SubPrivate Sub Command2_Click()Text1.Text = ""Text2.Text = ""End SubPrivate Sub Command3_Click()Unload MeForm1.ShowEnd SubPrivate Sub Form_Load()Text2.Text = ""Text1.Text = ""Text2.PasswordChar = "*"End SubPrivate Sub Picture1_Click()End SubForm3的代码:Private Sub Command1_Click()Adodc1.Recordset.MoveFirstAdodc1.Recordset.Find "用户名='" & Text1.Text & "'"If Adodc1.Recordset.EOF = True Then Adodc1.Recordset.MoveFirstIf ((Trim(Text1.Text)) = (Trim(Text3.Text))) And ((Trim(Text2.Text)) = (Trim(Text4.Text))) ThenAdodc1.Enabled = FalseForm4.Text1.Text = Text1.TextForm4.Text2.Text = Text4.TextUnload MeForm5.ShowElseMsgBox "非法的账号!", vbOKOnly + vbExclamation, "请重新输入!"Text1.Text = ""Text2.Text = ""Text1.SetFocusEnd IfEnd SubPrivate Sub Command2_Click() Option1.Value = FalseOption2.Value = FalseText1.Text = ""Text2.Text = ""End SubPrivate Sub Command3_Click() Unload MeForm1.ShowEnd SubPrivate Sub Form_Load()Text2.Text = ""Text1.Text = ""Text2.PasswordChar = "*" End Sub无代码Form5的代码:Private Sub cjcx_Click(Index As Integer) Unload MeForm7.ShowEnd SubPrivate Sub Command1_Click()On Error Resume NextIf Command1.Caption = "修改" Then Command1.Caption = "确认"Adodc2.Recordset.RequeryText5.SetFocusElseCommand1.Caption = "修改"Adodc2.Recordset.UpdateMsgBox "修改成功"End IfEnd SubPrivate Sub Form_Load()mandType = adCmdUnknownAdodc1.RecordSource = "Select * From studentwel Where 用户名='" & Form4.Text1.Text & "'" Adodc1.RefreshText1.Visible = TrueText3.Visible = TrueTimer1.Interval = 1000Timer1.Enabled = TrueEnd SubPrivate Sub Picture1_Click()End SubPrivate Sub tcxt_Click(Index As Integer)Unload MeForm3.ShowEnd SubPrivate Sub Timer1_Timer()Text2.Text = Time$()End SubPrivate Sub xgmm_Click()Label5.Visible = TrueLabel7.Visible = TrueText4.Visible = TrueText5.Visible = TrueCommand1.Visible = TruemandType = adCmdUnknownAdodc2.RecordSource = "Select * From studententer Where 用户名='" & Form4.Text1.Text & "'"Adodc2.RefreshEnd SubPrivate Sub xxcx_Click(Index As Integer) Unload MeForm6.ShowEnd SubForm6的代码:Private Sub Command1_Click()Unload MeForm5.ShowEnd SubPrivate Sub Command2_Click()On Error Resume NextIf Command2.Caption = "修改" ThenText1.SetFocusCommand2.Caption = "确认"Adodc1.Recordset.RequeryMsgBox "信息修改成功"ElseCommand2.Caption = "修改"Adodc1.Recordset.UpdateEnd IfEnd SubPrivate Sub Form_Load()mandType = adCmdUnknownAdodc1.RecordSource = "Select * From studentinfor Where 学号='" & Form4.Text1.Text & "'" Adodc1.RefreshText1.Visible = TrueText2.Visible = TrueText3.Visible = TrueText4.Visible = TrueText5.Visible = TrueText6.Visible = TrueText7.Visible = TrueText8.Visible = TrueEnd SubPrivate Sub Picture1_Click()End SubPrivate Sub Command1_Click()Unload MeForm5.ShowEnd SubPrivate Sub Form_Load()Adodc1.Recordset.MoveFirstDim a As Stringa = Form4.Text1.TextAdodc1.Recordset.Find "学号='" & a & "'" Text1.Visible = TrueText2.Visible = TrueText4.Visible = TrueText6.Visible = TrueDim b As Integerb = Text2.TextIf b >= 90 ThenText3.Text = "优"ElseIf b >= 80 ThenText3.Text = "良"ElseIf b >= 70 ThenText3.Text = "中"ElseIf b >= 60 ThenText3.Text = "及格"ElseText3.Text = "不及格"End IfDim c As Integerc = Text4.TextIf c >= 90 ThenText5.Text = "优"ElseIf c >= 80 ThenText5.Text = "良"ElseIf c >= 70 ThenText5.Text = "中"ElseIf c >= 60 ThenText5.Text = "及格"ElseText5.Text = "不及格"End IfDim d As Integerd = Text6.TextIf d >= 90 ThenText7.Text = "优"ElseIf d >= 80 ThenText7.Text = "良"ElseIf d >= 70 ThenText7.Text = "中"ElseIf d >= 60 ThenText7.Text = "及格"ElseText7.Text = "不及格"End IfIf Text3.Text = "不及格" Then Text2.ForeColor = &HFF&End IfIf Text5.Text = "不及格" Then Text4.ForeColor = &HFF&End IfIf Text7.Text = "不及格" Then Text6.ForeColor = &HFF&End IfEnd SubPrivate Sub Picture1_Click()End SubForm8的代码:Private Sub Command1_Click()On Error Resume NextIf Command1.Caption = "修改" Then Command1.Caption = "确认"Adodc1.Recordset.RequeryText2.SetFocusElseCommand1.Caption = "修改"Adodc1.Recordset.UpdateMsgBox "修改成功"End IfEnd SubPrivate Sub file1_Click()Unload MeForm10.ShowEnd SubPrivate Sub file2_Click()Unload MeForm9.ShowEnd SubPrivate Sub file4_Click()Unload MeForm12.ShowEnd SubPrivate Sub file5_Click()Unload MeForm11.ShowEnd SubPrivate Sub file7_Click()Unload MeForm2.ShowEnd SubPrivate Sub file8_Click()Label3.Visible = TrueLabel4.Visible = TrueText1.Visible = TrueText2.Visible = TrueCommand1.Visible = TruemandType = adCmdUnknownAdodc1.RecordSource = "Select * From teacherenter Where 用户名='" & Form4.Text3.Text & "'"Adodc1.RefreshEnd SubPrivate Sub Picture1_Click()End SubForm9的代码:Private Sub Command1_Click()Dim mno As Stringmno = InputBox("请输入学号", "查找窗")Adodc1.Recordset.MoveFirstAdodc1.Recordset.Find "学号='" & mno & "'"If Adodc1.Recordset.EOF = True Then MsgBox "无此学号!", , "提示" End SubPrivate Sub Command2_Click()Unload MeForm8.ShowEnd SubPrivate Sub Command3_Click()Dim mnon As Stringmnon = InputBox("请输入姓名", "查找窗")Adodc1.Recordset.MoveFirstAdodc1.Recordset.Find "姓名='" & mnon & "'"If Adodc1.Recordset.EOF = True Then MsgBox "无此学号!", , "提示" End SubPrivate Sub Label5_Click()End SubPrivate Sub Label7_Click()End SubForm10的代码:Private Sub Command1_Click()On Error Resume NextCommand2.Enabled = Not Command2.Enabled Command3.Enabled = Not Command3.Enabled Command4.Enabled = Not Command4.EnabledIf Command1.Caption = "新增" ThenCommand1.Caption = "确认"Adodc1.Recordset.AddNewText1.SetFocusElseCommand1.Caption = "新增"Adodc1.Recordset.UpdateAdodc1.Recordset.MoveLastEnd IfEnd SubPrivate Sub Command2_Click()On Error Resume NextAdodc1.Recordset.DeleteAdodc1.Recordset.MoveNextIf Adodc1.Recordset.EOF ThenAdodc1.Recordset.MoveLastEnd IfEnd SubPrivate Sub Command3_Click()On Error Resume NextCommand1.Enabled = Not Command1.Enabled Command2.Enabled = Not Command2.Enabled Command4.Enabled = Not Command4.EnabledIf Command3.Caption = "修改" ThenCommand3.Caption = "确认"Adodc1.Recordset.RequeryText1.SetFocusElseCommand3.Caption = "修改"Adodc1.Recordset.UpdateEnd IfEnd SubPrivate Sub Command4_Click()On Error Resume Next Command1.Caption = "新增" Command3.Caption = "修改" Command1.Enabled = True Command2.Enabled = True Command3.Enabled = True Command4.Enabled = TrueAdodc1.Recordset.CancelUpdate Adodc1.Recordset.MoveLastEnd SubPrivate Sub Command5_Click() Unload MeForm8.ShowEnd SubPrivate Sub Command6_Click() Adodc1.Recordset.MovePreviousIf Adodc1.Recordset.BOF ThenAdodc1.Recordset.MoveLastEnd IfEnd SubPrivate Sub Command7_Click() Adodc1.Recordset.MoveNextIf Adodc1.Recordset.EOF ThenAdodc1.Recordset.MoveFirstEnd IfEnd SubPrivate Sub Command8_Click() Adodc1.Recordset.MoveFirstEnd SubPrivate Sub Command9_Click() Adodc1.Recordset.MoveLastEnd SubPrivate Sub Label5_Click()End SubForm11的代码:Private Sub Command1_Click()Dim mno As Stringmno = InputBox("请输入学号", "查找窗")Adodc1.Recordset.MoveFirstAdodc1.Recordset.Find "学号='" & mno & "'"If Adodc1.Recordset.EOF = True Then MsgBox "无此学号!", , "提示" End SubPrivate Sub Command2_Click()Unload MeForm8.ShowEnd SubPrivate Sub Picture1_Click()End SubForm12的代码:Private Sub Command1_Click()On Error Resume NextCommand2.Enabled = Not Command2.Enabled Command3.Enabled = Not Command3.Enabled Command4.Enabled = Not Command4.EnabledIf Command1.Caption = "新增" ThenCommand1.Caption = "确认"Adodc1.Recordset.AddNewText1.SetFocusElseCommand1.Caption = "新增"Adodc1.Recordset.UpdateAdodc1.Recordset.MoveLastEnd IfEnd SubPrivate Sub Command2_Click()On Error Resume NextAdodc1.Recordset.DeleteAdodc1.Recordset.MoveNextIf Adodc1.Recordset.EOF ThenAdodc1.Recordset.MoveLastEnd IfEnd SubPrivate Sub Command3_Click()On Error Resume NextCommand1.Enabled = Not Command1.Enabled Command2.Enabled = Not Command2.Enabled Command4.Enabled = Not Command4.EnabledIf Command3.Caption = "修改" ThenCommand3.Caption = "确认"Adodc1.Recordset.RequeryText1.SetFocusElseCommand3.Caption = "修改"Adodc1.Recordset.UpdateEnd IfEnd SubPrivate Sub Command4_Click()On Error Resume NextCommand1.Caption = "新增"Command3.Caption = "修改"Command1.Enabled = TrueCommand2.Enabled = TrueCommand3.Enabled = TrueCommand4.Enabled = TrueAdodc1.Recordset.CancelUpdateAdodc1.Recordset.MoveLastEnd SubPrivate Sub Command5_Click()Unload MeForm8.ShowEnd SubPrivate Sub Command6_Click() Adodc1.Recordset.MovePreviousIf Adodc1.Recordset.BOF ThenAdodc1.Recordset.MoveLastEnd IfEnd SubPrivate Sub Command7_Click() Adodc1.Recordset.MoveNextIf Adodc1.Recordset.EOF ThenAdodc1.Recordset.MoveFirstEnd IfEnd SubPrivate Sub Command8_Click() Adodc1.Recordset.MoveFirstEnd SubPrivate Sub Command9_Click() Adodc1.Recordset.MoveLastEnd SubPrivate Sub Picture1_Click()End Sub数据库部分:建立数据库表:。
Access综合应用评分程序制作的教学实践
教学探索S KILLS101OCCUPATION2015 04Access综合应用评分程序制作的教学实践文/杨京山摘 要:如何提高学生的VBA编程及Access数据库综合应用能力,是笔者与同仁在教学过程中不断进行探索课题。
在总结多年教学实践的基础上,本文利用评分程序的制作及分析,探讨Access数据库、VBA编程的综合应用。
关键词:Access评分程序 窗体 数据表程序代码 Recordset对象 声音模块原来的被动接受,转变为主动探索,并乐在其中,大大提高了其学习的积极性,活跃了教学氛围,真正做到了学生为教学的主体,教师只起到组织和指导作用。
不称职的教师只是给学生传授真理,称职的教师是使学生学会找寻真理。
2.调动学生主动学习的积极性情境教学模式相对于传统教学来说,学生会觉得教学方法很新鲜,会瞬间产生兴趣,在教学中创设情境,导入教学,更会调动学生主动学习的积极性。
针对当前医院的热门情境或临床案例,使学生身临其境,从学中思考,从表演中领悟,可以使学生在以后的临床工作中投入更多的情感,而并不只会机械地操作,使护理工作更加人性化,并思维活跃,把创新性思维用于更好地提升服务质量。
3.使学生身临其境,学会换位思考传统说教式的教学一直强调“以病人为中心”,想病人之所想,急病人之所急,但学生很难体会病人的心情与处境。
通过情境式的模拟,自己也扮演病人的角色,换位思考,会从中体会到病人的真实感受。
这种设身处地的亲身体验对学生以后的临床护理工作会是很好的一个实践。
学会站在病人的立场思考问题,有助于和谐护患关系,减少护患矛盾。
4.融洽人际关系,加强合作意识研究表明,建立有序的医疗环境,构建和谐的医护人员与患者的关系可有效减少医疗纠纷。
在情景模拟当中,小组之间可以发扬集体团结协作的精神,提升各自的实际操作能力,达到学习的目的,从而增进了同学之间的了解,形成了良好的人际关系。
同时,也增强了大家合作的意识,真正认识到每个人都是集体中的一员,每个人的举动都会牵扯到集体利益,而并不是一盘散沙,使其在开始临床实习前,提高个人的自信心和对工作的自我胜任感。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Access数据库VBA编程实例——通用成绩处理系统诏安一中信息技术组吴瑶民同学们通过学习高中选修课4《数据库管理技术》第四章“开发数据库应用系统”,已初步学会了简单应用系统的设计,为了让同学们能进一步提升开发能力,以学生熟知的成绩统计为实例,结合VBA编写通用成绩处理系统。
一、系统总体分析与设计成绩录入采用EXCEL电子表格模板方式,各班以电子表格形式上缴年段,由年段汇总后导入通用成绩处理系统,然后由系统进行计算总分、排名次、质量分析后,通过导出功能导出EXCEL表格形式并打印出统计结果。
录入成绩与打印成绩都在教师悉熟的EXCEL电子表格进行,方便教师操作,数据的统计与分析由系统自动完成,提高工作效率。
将上述模块设计图示化后我们便可以得到所示的系统功能模块图:二、数据库分析与设计1.数据库数据结构分析通过对成绩统计过程分析及数据要求,创建该管理系统数据库,名为“通用成绩管理系统.mdb”,主要包含的数据表有“学生成绩”、“质量分析”两个表。
“学生成绩”为EXCEL 格式的“学生成绩”通过导入模块生成,EXCEL格式的“学生成绩”格式如下:“质量分析”表结构设计如下表:2、窗体的设计与实现窗体是Access 2003数据库系统的一个重要对象。
前面介绍的数据导入、浏览记录、质量分析、显示查询结果、导出数据等都是在“数据表”视图中所进行的操作。
(1)通用成绩处理系统窗体:图一该窗体及命令按钮VBA代码:Private Sub Form_Load()MsgBox ("使用前先进入“使用帮助”,花几分钟阅读一下使用说明,会使你的工作事半功倍!")End SubPrivate Sub 命令0_Click()On Error GoTo errDim db As DatabaseSet db = CurrentDb()For i = 0 To db.TableDefs.Count - 1If db.TableDefs(i).Name = "学生成绩" ThenDoCmd.DeleteObject acTable, "学生成绩"End IfNext iSet db = NothingMsgBox ("请将要导入的文件置于“成绩统计”文件夹中,文件名必须是“学生成绩”") DoCmd.TransferSpreadsheet acImport, 8, "学生成绩", CurrentProject.Path & "\学生成绩.xls", TrueMsgBox ("导入完成!")Exit Suberr:MsgBox ("找不到文件或文件格式不对")End SubPrivate Sub 命令11_Click()DoCmd.OpenTable "学生成绩"End SubPrivate Sub 命令12_Click()MsgBox ("提示:00表示年段,01表示一班,02表示二班.....")DoCmd.OpenTable "质量分析"End SubPrivate Sub 命令13_Click()DoCmd.OpenQuery "temp"End SubPrivate Sub 命令15_Click()FollowHyperlink CurrentProject.Path & "\功能说明.doc"End SubPrivate Sub 命令22_Click()DoCmd.Quit acQuitSaveAllEnd SubPrivate Sub 命令6_Click()DoCmd.OpenForm "质量分析"End SubPrivate Sub 命令7_Click()DoCmd.OpenForm "导出结果"End Sub(2)质量分析窗体各命令按钮VBA代码:Private Sub 命令10_Click()Dim kmzf(15) As DoubleDim kmmc(15) As StringFor i = 1 To 11kmzf(i) = Val(Me.Controls("txtzf" & i).Value)Nextkmmc(1) = "数学"kmmc(2) = "语文"kmmc(3) = "英语"kmmc(4) = "物理"kmmc(5) = "化学"kmmc(6) = "地理"kmmc(7) = "政治"kmmc(8) = "历史"kmmc(9) = "生物"kmmc(10) = "文综"kmmc(11) = "理综"Dim k As Stringtt = Falsek = ""'Dim db As DAO.Database '声明数据库对象变量Set db = CurrentDb()db.Execute "DELETE * FROM 质量分析;"For i = 1 To 11If Me.Controls("check" & i) <> 0 ThenCall 统计(kmmc(i), kmzf(i), "00") '算年段三率For j = Val(TXTbjks.Value) To Val(TXTbjks.Value) + bjzs - 1 If j < 10 Thenk = "0" & CStr(j)Call 统计(kmmc(i), kmzf(i), k) '算班级三率Elsek = CStr(j)Call 统计(kmmc(i), kmzf(i), k)End IfNext jEnd IfNext iIf tt = False ThenMsgBox ("统计完毕,请返回主菜单导出结果打印")End IfEnd SubPrivate Sub 命令97_Click()Call 查询End SubPrivate Sub 命令100_Click()DoCmd.CloseEnd SubPrivate Sub 命令111_Click()Dim kk As StringCall 计算总分For i = Val(TXTbjks.Value) To Val(TXTbjks.Value) + Val(txtbjzs.Value) - 1Debug.Print iIf i < 10 Thenkk = """0" & CStr(i) & "*"""Elsekk = """" & CStr(i) & "*"""End IfDebug.Print kkCall RangBerechnen_bj("学生成绩", kk, "总分")Next iMsgBox ("处理完毕!")End SubPrivate Sub 命令98_Click()tt = True'Call 计算总分Call RangBerechnen("学生成绩", "总分") '年段排名Call 查询If tt ThenMsgBox ("统计完毕,请返回主菜单导出结果打印")End IfEnd Sub(3)导出结果窗体各命令按钮VBA代码:Private Sub 命令0_Click()DoCmd.OutputTo acOutputQuery, "temp", acFormatXLS, CurrentProject.Path & "\学生站队表.xls"MsgBox "导出完毕!结果为“成绩统计\学生站队表.xls”"End SubPrivate Sub 命令1_Click()DoCmd.OutputTo acOutputTable, "质量分析", acFormatXLS, CurrentProject.Path & "\质量分析.xls"MsgBox "导出完毕!结果为“成绩统计\质量分析.xls”"End SubPrivate Sub 命令3_Click()DoCmd.CloseEnd Sub(4)通用模块代码Public tt As BooleanPublic i As IntegerPublic j As IntegerPublic str As StringPublic bjzs As IntegerPublic kmzf(15) '存放各科总分Public kmmc(15) '存放科目名称Sub 统计(km As String, kmzf As Double, jj As String)Dim sum As LongDim intI As LongDim avg As SingleDim gfli As SingleDim jgli As SingleDim strsql As StringDim db As DAO.Database '声明数据库对象变量Dim recName As DAO.Recordset '声明记录集对象变量Dim strName As DAO.Field '声明字段对象变量On Error GoTo wrongSet db = CurrentDb() '指定数据库为当前数据库If jj = "00" ThenSet recName = db.OpenRecordset("学生成绩") '计算年段ElseSet recName = db.OpenRecordset("select * from 学生成绩 where 班号 like " & """" & jj & "*" & """") '计算班级End IfSet strName = recName.Fields(km) '指定记录集“科目”字段' 计算三率jgrs = 0 '及格人数sum = 0 '总分gfrs = 0 '高分人数intI = 0 '总人数Do Until recName.EOFsum = sum + IIf(IsNull(strName), 0, strName) ' 将“科目”字段读入数组If strName >= kmzf * 0.6 Thenjgrs = jgrs + 1 '及格人数End IfIf strName >= 0.8 * kmzf Thengfrs = gfrs + 1 '高分的人数End IfintI = intI + 1 '总人数recName.MoveNext '读取记录集的下一行记录Loopavg = sum / intI '平均分gfli = gfrs / intI '高分率jgli = jgrs / intI '及格率'写入“质量分析”表Set recName = db.OpenRecordset("质量分析") '将“”表读入记录集recName.AddNewrecName.Fields(0) = jjrecName.Fields(1) = kmrecName.Fields(2) = intIrecName.Fields(3) = jgrsrecName.Fields(4) = gfrsrecName.Fields(5) = avgrecName.Fields(6) = jglirecName.Fields(7) = gflirecName.UpdateExit Subwrong:MsgBox ("找不到科目成绩或者班级总数设置不对!请检查并重新设置")i = 11: j = 18000: tt = TrueEnd Sub'生成temp查询Public Sub 查询()Dim db As DAO.Database '声明数据库对象变量Dim qry As DAO.QueryDefSet db = CurrentDb()For i = 0 To db.QueryDefs.Count - 1If db.QueryDefs(i).Name = "temp" ThenDoCmd.DeleteObject acQuery, "temp"End IfNext iSet qry = db.CreateQueryDef("temp")qry.SQL = "SELECT * FROM 学生成绩 ORDER BY 总分 DESC"Set db = NothingEnd SubPublic Sub 计算总分()Dim db As DAO.Database '声明数据库对象变量Dim recName As DAO.Recordset '声明记录集对象变量Dim strName As DAO.Field '声明字段对象变量kmmc(1) = "数学"kmmc(2) = "语文"kmmc(3) = "英语"kmmc(4) = "物理"kmmc(5) = "化学"kmmc(6) = "地理"kmmc(7) = "政治"kmmc(8) = "历史"kmmc(9) = "生物"kmmc(10) = "文综"kmmc(11) = "理综"Set db = CurrentDb() '指定数据库为当前数据库Set recName = db.OpenRecordset("学生成绩") '将“”表读入记录集On Error GoTo errDo Until recName.EOFsum = 0For i = 1 To 11If Form_质量分析.Controls("check" & i) <> 0 Thensum = sum + IIf(IsNull(recName.Fields(kmmc(i))), 0, recName.Fields(kmmc(i)))End IfNext irecName.EditrecName.Fields("总分") = sumrecName.UpdaterecName.MoveNextLoopExit Suberr:MsgBox "找不到成绩!请重新设置科目"tt = FalseEnd Sub'计算名次Public Function RangBerechnen(TableName As String, LeistungFeld As String) As Boolean On Error GoTo Err_RangDim db As DAO.DatabaseDim iRang As LongDim iLeistung As IntegerDim iGleicherRang As IntegerSet db = CurrentDbSet rst = db.OpenRecordset("SELECT * FROM " & TableName & " ORDER BY " & LeistungFeld & " DESC", dbOpenDynaset)iRang = 1With rstDo While Not .EOFiLeistung = .Fields(LeistungFeld).Edit!年名 = iRang.Update.MoveNextIf .EOF Then Exit DoiGleicherRang = 0Do While (.Fields(LeistungFeld) = iLeistung).Edit!年名 = iRang.UpdateiGleicherRang = iGleicherRang + 1.MoveNextIf .EOF Then Exit DoLoopiRang = iRang + 1 + iGleicherRangLoop.CloseEnd WithRangBerechnen = TrueSet db = NothingSet rst = NothingExit_Rang:Exit FunctionErr_Rang:RangBerechnen = FalseResume Exit_RangEnd Function'计算班级名次Public Function RangBerechnen_bj(TableName As String, tiaoj As String, LeistungFeld As String) As BooleanOn Error GoTo Err_RangDim rst As DAO.RecordsetDim iRang As LongDim iLeistung As IntegerDim iGleicherRang As IntegerDim sqlstr As Stringsqlstr = "SELECT * FROM " & TableName & " where 班号 like " & tiaoj & " ORDER BY " & LeistungFeld & " DESC;"Set db = CurrentDbSet rst = db.OpenRecordset(sqlstr, dbOpenDynaset)iRang = 1With rstDo While Not .EOFiLeistung = .Fields(LeistungFeld).Edit!班名 = iRang.Update.MoveNextIf .EOF Then Exit DoiGleicherRang = 0Do While (.Fields(LeistungFeld) = iLeistung).Edit!班名 = iRang.UpdateiGleicherRang = iGleicherRang + 1.MoveNextIf .EOF Then Exit DoLoopiRang = iRang + 1 + iGleicherRangLoop.CloseEnd WithRangBerechnen_bj = TrueSet db = NothingSet rst = NothingExit_Rang:Exit FunctionErr_Rang:RangBerechnen_bj = FalseResume Exit_RangEnd Function。