欢迎您登陆四川省广元市职业高级中学今天是
设为首页加入收藏联系我们

此页面上的内容需要较新版本的 Adobe Flash Player。

获取 Adobe Flash Player

您当前的位置:首页 > 教学管理 > 教学科研 > 论文发布

用案例引领ACCESS中的VBA教学

发布时间:2014-08-17 10:16:58; 作者:母明 阅读次数:

计算机应用教研组   母明

 

关键词:案例 VBA  教学 题目还原 操作 归纳

摘要:学生在学习VBA编程时,往往会觉得枯燥无味,但是,我们在进行VBA教学时,可以结合生活中的实例,用案例来提高学生兴趣;案例实施过程中,教师要善于引导和教学设计,舍得“放手”,多给学生操作机会,切勿抹杀学生自主探索的能力;案例教学结束时善于归纳提炼关键知识点,就会更好的达到教学目的,学生才能更好的掌握知识、学习技能,更好的运用知识。

 

ACCESS是微软公司的中小型数据库管理系统,它除了可以进行常规的数据库管理与开发外,还集成了丰富的VBAVisual Basic for Application)模块。学生在学习VBA编程时,往往会觉得枯燥无味,但是,如果我们在进行VBA教学时,能结合生活中的实例,比如彩票生成程序、交通红绿灯程序,电梯程序等等,教学就会显得生动有趣,学生的学习兴趣也就愈来愈浓。通过案例式的教学,让学生了解整个项目的实施过程与步骤,从中归纳提炼教学中要求学生掌握的关键知识点。

本文就结合彩票生成程序来谈谈如何引领VBA教学。

一、用案例结果提高学生兴趣

在进行类似的案例教学时,教师可以先展示程序运行结果,以便让学生产生学习兴趣,激发学生的学习潜能,产生求知欲。如教师展示如下操作界面(图1):

1

与此同时,要求学生对该案例的结果提出运行环境要求,比如用户如何操作,操作结果用户能否修改等,也即是让学生对该案例进行题目还原(出题)。学生肯定能快速的从案例运行结果中得出题目原型:单击“试手气”按钮时,电脑会随机产生一组红色数字和一个蓝色数字,单击“退出”按钮时则会退出应用程序。此时,教师可进一步补充游戏规则,要求每个红色数字只能在1~33内,蓝色数字只能在1-16之内。

因此,建议学生在学习VBA程序设计之前,不要给学生讲太多的代码及语法,这样知识的抽象性太强,学生不易接受,而且还会使学生失去学习VBA编程的信心。相反,如果在学习之前用案例来进行教学,给学生演示案例操作结果,首先激发学生的兴趣和求知欲,才能进行更进一步的学习,这也符合循序渐进、由简到难的学习规律。

二、案例实施过程中,教师的引导和教学设计尤为重要。教师要舍得“放手”,多给学生操作机会,教师切勿抹杀学生自主探索的能力。

1、简单直观的操作一定要把机会留给学生,切勿占用学生动手操作机会。学生在了解了案例之后,肯定有一种自我实现程序的愿望,教师可放心大胆的留给学生一定的时间,让他们自己去操作设计,进行自主探索式学习,教师只在适当时予以提示。比如本例中可让学生自己设计界面,加入两个文本框对象、两个命令按钮,并要求学生自己探索设置对象的颜色、字体、大小、标题、位置等。由此引导学生并向学生设问,如何向窗体加入对象,如何修改这些对象的属性,让学生在操作和归纳总结中掌握知识点。

2、探索式的互动教学能够帮助学生理解VBA程序运行机制。在进行本案例的教学时,重点应该放在按钮的编程中,当学生自己完成界面设计后,教师可要求学生运行自己的程序,并单击两个按钮,让学生得出结论,结果不言而喻,肯定没有任何结果。此时,教师应加以引导,进行探索式的互动教学进程。解决学生心中“为什么没有结果”的疑问,从而引出VBA“事件驱动”的运行机制,并结合生活示例加以解释。相信学生明白了“事件驱动”机制后,就不难得出结论:要想单击程序中“试手气”命令按钮,自动在文本框中显示两组随机号码,则不得不对该按钮的“单击”事件进行代码编写。教师可马上演示如何对按钮的单击事件过程进行编程的操作步骤,即如何进入VBA代码编辑窗口,以及如何对按钮的单击事件过程进行编程。并留给学生一定的时间进行操作。

3、提出问题、分析问题并找到解决问题的方法是程序设计的关键。当在进行代码设计教学之前,必须让学生分析案例,不能急于求成的去编写代码。在学生完成了界面设计之后,教师可再次展示案例结果,让学生思考、分析,再次对题目进行还原。在第一个文本框中产生61-33以内的随机数,在第二个文本框内产生11-16以内的随机数,其实题目内还隐藏了三个要求,一是不能有重复数字,二是产生的随机数字要进行从小到大排序,三是要将这些数字放入文本框内。这时,不防带领学生一起分析算法和画出流程图。不难得出如下的设计思路(算法):

i<=5?

i=1

j<=6?

j=i+1

red(i)>red(j)?

t=red(i):red(i)=red(j):red(j)=t

j=j+1

i=i+1

N

Y

N

N

Y

Y

以案例中产生前六个随机数为例。用一个有33个元素的数组作为判断标记,用循环产生6个随机数,每产生一个随机数,则将以该数为下标的数组元素的值置为true,下一轮产生随机数后,判断以该数为下标的数组元素值,若为true,说明重复,否则继续产生下一个随机数(算法流程如图2)。将产生的6个不同的随机数存入一个单独的数组中,将这6个数进行重新排序(算法流程如图3),最后将排好序的6个数输出到文本框。

Y

Y

N

N

开始

产生一个随机数

个数<=6?

已经存在?

从小到大排序

输出到文本框

结束

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4、学习VBA程序代码时,不能囫囵吞枣,了解结构尤为重要。在学生学会了分析问题,并能使用流程图,下一步的任务就是引领学生编写VBA代码。在初次接触时,教师可以演示编写,只讲代码结构和作用,切不可让学生句句掌握,行行背诵。如在本例中,可向学生给出如下代码,并在必要时加以注释说明,对核心代码进行必要的掌握。

Private Sub Command1_Click()

'声明数组,存放红色球数字

Dim red(1 To 6) As Integer

'声明红色球重复校验

Dim redIsRepeat(33) As Boolean

'清空窗体中的文本框

Me.Text1.Value = ""

Me.Text2.Value = ""

'初始化随机数发生器

Randomize

'随机产生6组不同数值(红色球号码)

For i = 1 To 6

    '过滤重复数值

    Do

        red(i) = Int(Rnd * 33 + 1)

    Loop While redIsRepeat(red(i))

    redIsRepeat(red(i)) = True

Next i

'从小到大有序排列

Dim t As Integer

For i= 1 To 5

    For j = i+1 To 6

        If red(i) > red(j)  Then  t = red(i): red(i) = red(j): red(j) = t

    Next  j

Next  i

'显示红色球号码

For i = 1 To 6

    Me.Text1.Value = Me.Text1.Value & Format(red(i), "00") & Space(2)

Next i

'去除右边空格

Me.Text1.Value = Trim(Me.Text1.Value)

Dim blue As Integer

'随机产生1个数值(蓝色球号码)

blue = Int(Rnd * 16 + 1)

'显示蓝色球号码

Me.Text2.Value = Format(blue, "00")

三、案例教学结束时要善于归纳提炼关键知识点。

目前,虽然案例式、项目式的教材和教学课件资料层出不穷,教学方式方法多种多样,最终的目的是让学生学习知识,掌握技能,最重要的还是取决于学习主体和教师的引导。如果学生只是为了完成某个案例或项目,为了任务而学习的话,将是肤浅的,不能从案例学习中提炼和理解知识,更不能谈知识的灵活运用。因此,笔者认为,在进行案例或项目的实践操作学习结束时,学生完成了案例或项目要求,有一种成就感,往往会很浮躁,认为高高在上。如果要求学生马上重做一遍,大多数学生很茫然,因为在案例或项目的教学过程中,学生是在教师的引导下完成的,势必还会对教学过程甚至教师产生依赖,所以最后一个过程就要耐下心来,让学生解脱这种依赖,务必要对案例或项目中涉及的重点知识进行提炼,甚至还要进行针对性的变式训练,对案例或项目中通用性的操作步骤进行归纳总结。比如在本案例中要求学生总结对象的属性设置方法、对象的VBA编程方法、对实际问题的算法分析方法,还要归纳VBA编程的一般步骤,只有这样,才会更好的达到教学目的,学生才能更好的掌握知识、学习技能,更好的运用知识。

 

 

参考文献:

Access2003应用基础 高等教育出版社 四川省中等职业教育教学指导委员会

数据库原理及应用----ACCESS(第二版) 沈祥玖 尹涛 主编