Excel向Access的转变——使用数据库实现四六级成绩管理

  • 来源:中文信息
  • 关键字:Excel,Access,数据库
  • 发布时间:2015-07-03 12:24

  摘要:从学校毕业到参加工作,经历的是从温室培育到野外生存式的天差地别的转变。书到用时方恨少,古人的道理就是这么的简单,有效,但这句话对我的处境来说显得是那么的粗暴。Excel对工作的帮助真得很神奇,它让我在一周之内完成了别人一、两月才能完成的工作,并且准确率接近100%。但是却也会存在一些弊端,本文就是讲述作者通过Excel向Access的转变,做到更好的管理数据库,从而更好的运用Access来管理学生的四六级成绩。

  关键词:Excel Access 数据库 四六级成绩 管理

  中图分类号:TP311 文献标识码:A 文章编号:1003-9082(2015)07-0005-01

  现在我要接手全校的四、六级成绩管理工作。第一个要解决的是“历史遗留问题”。以前的四六级成绩是在成绩单回来后在成绩表里添加一列“成绩单编号”它是一个15位的数字编号,用来做学校的成绩存档。这个学校有3500人,每次参加考试的大概有一千多人,每个人要输入一个15位的数字编号,这真得是一个庞大的工作!我也是因为在两天内解决了这个问题,且准确率达到100%,所以得到管理四六级成绩的这个机会。解决这个问题的方案很简单,因为它不是一个有难度的问题:成绩单在下发回来的时候是按成绩单编号做排列的,这是一个从小到大的排列,并且中间没有空号。在每年成绩表的电子档案中有“准考证号”,同样的内容也出现在大学四六级成绩单中,但它同样是一个15位的编号。这里的“成绩单编号”和“准考证”后四位就是顺序码,于是我用RIGHT函数截取了它的后四位,并且粘贴为数值,然后在另外一个新表中做两列值:将“成绩单编号”填充出来;将每张成绩单“准考证号”的后四位录入,最后用“VLOOOKUP”函数将“成绩单编号”对应进电子成绩中。最后将“成绩单编号”做个排序,检查一下得出的结果有没有出错,看它是不是一个连续的不重复的数字系列。我还需要制作一份校四级名单,找出毕业生四级考试没有通过390分的学生。毕业生有800人,最多有学生考了七次,也有一两次的,而我需要在七次考试中找到每个毕业生的考试信息,筛选出没有通过390分的学生名单,而最难的是原始信息中存在太多的错误:学生名字有错误的、身份证号有错误的、学号有错误的,这一切都使得工作困难重重。每一次考试都是一个单独的表格,总共七个表格,每年都有新生加入,数据很庞大。“高级筛选”是个不错的选择,而使用“VLOOKUP”函数得到毕业生每年的成绩,再结合“MAX函数”就可以得出校四级的名单。可是这么做的第一个问题是错误信息难以处理,再一个问题是这样的管理方式难以避信息出错,还有就是操作复杂。

  自学是件困难的事情,而当你迫切需要它的时候,就会参杂进一份煎熬的情绪。Access用的人真得很少,以至于它的学习资料难以寻找。从Access的学习资料来看它包含的内容有:表格、查询、窗体、报表还有编程。可我发现我并不能从这些教材中学的更多,我无法在这样的学习中解答我心中的疑惑,我总是想用Excel的表格形式来实现我的要求。后来我发现学习软件,我们如果知道了每种工具的用法那么基本上就可以使用这个软件达成自己的要求,可它不是,要弄清楚它要做的第一件事是认识数据库数据与Excel数据的区别,第二件事是如何使用这样的数据达成心中的结果。好吧,我承认我在这里花费了很长时间,可本来是一两句话就能解开的迷惑。于是我感觉委屈、不值,可回头来想,我不是达到我的目的了吗,在前进的道路中可以走的很慢,但方向不能错,坚持走下去就能找到目的地,因为事情原本就不那么难。数据库的每一行表示一个内容,所以它有点像是一维表格,而Excel中表达的是一个二维或三维信息,在这个“一维表格”中要添加进这个内容的各种属性,比如它的时间属性,它的分类属性等,那么每一行数据就是一个单独的个体,我们要做的就是对每一个个体进行操作达到我们的目的。说起来简单但它确实不好理解,这是一个很细微的差别,人们在现实生活中用到的表格所表达的就是一个二维或三维的内容,这符合人们的习惯,而这样的表格是可以出现在Access中的,但这样的表格在Access中没有多大的意义。举个例子:比如我们有一个按地区和季度划分的公司收入表,我们一般会将地区作为行标题,将季度做为列标题,而它们构成的区域中就是公司收入的具体内容,我们会自然的感觉行标题和列标题的意义更重要些,因为表格的内容会随着情况的不同而改变。但在Access中每一个收入是一个主体,这个主体有两个属性,一个是地区属性,一个是季度属性。是的Access将这种每一个变化的值做为一个主体来管理,那么原本表格中一行内容就有四个主体,在Access中也就有四条数据。感觉好像变得复杂了,因为如果上边的例子有十个地区的话,在Access中就要制作40条数据,这么大的数据量听着就让人头大,可是这样的设计真得会让人头变大吗?我们来解释第二个问题:我们如何使用Access中的数据。每一条数据只有一个主体,其它内容都是这个主体的属性,这些属性之间显然是有关联的,Access就是在对这些有相同属性的内容做各种处理。可以将这些有相同属性的内容显示出来,可以将一种或多种属性做行标题,将另外一种或多种属性做列标题;可以对这些内容做计数统计,也可以做求和统计,以及其它各种各样的统计。是的,当数据量庞大的时候,这种方式显然更加有效。而它的另一种设计让我发觉我真得是爱上了它,是的就是爱的那种感觉!以我的工作为例,我以学生身份证号为主体做一个表,它的属性是学生的基本信息。再将四六级成绩做一个表,其中主体是成绩,属性有身份证号,考试科目,考试时间等。我以身份证号将两个表格做一个连接,关键是在这里我可以将成绩表中所有不符合学生表中主体信息的内容全部删除。这样就形成了一个绝对的对应关系,另外当我修改学生表中的内容时,成绩表中相对应的内容也会被修改。当然在这之前将那些不符合的内容筛选出来,做相应的处理,这种筛选用的是属性的不包含关系。就这样,我的工作变得如此简单!

  使用Access管理四六级成绩:第一,建立学生信息表和成绩表。学生信息表中的字段为身份证号、姓名、性别、学号、毕业日期。成绩表中字段为身份证号、报考等级、考试时间、总分。第二,在关系视图添加学生信息表和成绩表在“联接类型”中选择包括“学生信息”中的所有记录和“成绩表”中联接字段相等的那些记录,并勾选实施参照完整性、级联更新相关字段、级联删除相关字段。第三,建立查询将两个表内容合二为一。第四,使用交叉表查询向导,将学号,姓名,报考等级,毕业时间做为行标题,考试时间做为列标题,总分做为值,将函数一栏选为MAX。这样就完成了全校学生,每年四级成绩表格的制作。

  参考文献

  [1]李珺.Foxbase数据向Access数据库的转变技巧[J].现代教育技术,2000,01:46-48.

  [2]邓景顺,王文军.SQL Server中对Access和Excel文件的数据操纵[J].电脑编程技巧与维护,2012,12:55-57.

  [3]巫红霞.基于数据仓库和数据挖掘的高校教学管理决策支持系统[D].南京航空航天大学,2009.

  任挺

关注读览天下微信, 100万篇深度好文, 等你来看……