站内搜索

ACCESS入门教程(十五)宏的使用

  到底什么是宏呢? 我们把那些能自动执行某种操作的命令统称为“宏”。

  宏也是一种操作命令,它和菜单操作命令都是一样的,只是它们对数据库施加作用的时间有所不同,作用时的条件也有所不同。菜单命令一般用在数据库的设计过程中,而宏命令则用在数据库的执行过程中。菜单命令必须由使用者来施加这个操作,而宏命令则可以在数据库中自动执行。

  在ACCESS中,一共有五十三种基本宏操作,这些基本操作还可以组合成很多其他的“宏组”操作。在使用中,我们很少单独使用这个或那个基本宏命令,常常是将这些命令排成一组,按照顺序执行,以完成一种特定任务。这些命令可以通过窗体中控件的某个事件操作来实现,或在数据库的运行过程中自动来实现。

  事件操作即像“单击”按钮、“双击”列表选项这些行为都是对控件的事件操作。所以我们常常会听到别人说“单击‘某某’按钮执行‘某某宏命令’”,就是这个意思。

  

 

  先看个例子,有这样一个窗体,上面有一个数据表。现在在这个数据表中添加一个功能,用一个文本框输入要查询的内容,而用一个“查询”按钮来完成查询的工作,并将查询后的数据打印在报表上。

  在窗体那一课里讲的命令按钮向导就能实现这个功能,但对于每个控件来说,要实现相应的功能光凭借向导是远远不够的。

  要让这些控件实现一定的功用,在ACCESS中有四种办法。当然最简单的就是使用控件向导了,除此之外还有“宏”、“VBA”和“SQL语言”,使用这些方法可以使控件完成几乎所有的数据库操作。而这其中,向导最简单,但实现的功能有限,而宏虽然只有53种基本操作,但可以组合成很多种宏组命令,这样就能实现很多ACCESS中有关窗体、报表、查询的功能,使用起来也非常方便。而VBA和SQL语言相对起来对用户的要求也要高一些,当然VBA和SQL语言可以实现的功能也更加全面,自主性也更强,但它们都要写程序。对于很多普通的用户,他们不要求会得太多,只要能完成手上的工作就可以了,所以这时使用宏就是他们最好的选择了。

  使用宏非常方便,不需要记住各种语法,也不需要编程,只需利用几个简单宏操作就可以对数据库完成一系列的操作,中间过程完全是自动的。

  

  磨刀不误砍柴功,要学会使用宏,我们先来看看宏的设计窗口吧。

  将鼠标移动到数据库窗口中的宏对象上,单击左键,就切换到“宏”对象上了,现在的所有操作都是针对宏的了。在这个窗口右侧的“创建方法和已有对象列表”列表栏中什么都没有,这是因为宏的创建方法非常简单,也很单一,所以既不需要有什么“宏向导”,也不必有很多的视图,在宏的创建过程中只有一个设计窗口。这个设计窗口非常简单,现在我们将鼠标移动到数据库窗口的“新建”菜单上,单击鼠标左键,就会在屏幕上弹出宏设计窗口,如下图所示。在这个窗口中就可以设计宏了。

宏设计窗口

  在宏的设计窗口中,“操作”下面的那一列就是宏所能执行的各种操作,在ACCESS2000中,一共有五十三种基本操作,这些操作我们可以通过单击这列中任何一个值弹出的下拉选单中来选择,而“备注”下面的那一列中可以输入执行这种操作时的备注。

  在宏设计器中,还有两个列的内容是可选的,这就是“宏名”和“条件”字段,现在将鼠标移动到工具栏上,单击“宏名”按钮“宏名”按钮,就会发现在宏设计器上出现了一个“宏名”列,并且这个“宏名”按钮也凹陷下去,同样单击工具栏上的“条件”按钮“条件”按钮,在设计器上就会再出现一个“条件”列。这时的“条件”按钮处于凹陷状态。此时的宏的设计窗口如下图所示。

添加后的宏设计窗口

  宏名这一列就是用来定义一个或一组宏操作的名字,以后要执行这个宏操作时,只要直接运行就可以了。如果我们想在宏执行某个操作之前,对宏是否能执行进行一些限制,就需要在条件这一列中输入相应的条件表达式,这样可以实现在宏执行之前先判断条件是否满足,如果满足则执行这个宏,如果不满足,则不能执行这个宏。

  讲了宏的设计窗口,现在该亲手来创建一个宏了。首先我们要打开一个数据库,单击数据库窗口选项卡上的“宏”对象,然后单击数据库窗口上的“新建”选项。这时就弹出了宏设计器窗口。

  因为这“宏名”和“条件”两列并不是宏设计窗口上的默认选项,没有这两列,如果要用到这两个选项,就需要单击工具栏上的这两个选项。现在这两列都出现在窗口上了。这时我们就可以先为这个宏取个宏名,就叫“查询”吧,然后我们将鼠标移动到操作这一列的第一行中,左键单击下拉框右面的“向下”按钮,这时就会弹出一个下拉菜单,在这个菜单上选择所需的操作命令,然后单击这个选项,那这个操作就会出现在这个下拉框中了。现在我们要执行一个叫“Gotocontrol”宏命令,那么就在这个下拉框中选中这个操作命令,如下图所示。

选择宏命令

  在选择了基本宏操作后,我们还要在宏设计窗口下部的操作参数“控件名称”中输入此操作需要的参数,为了确定操作对象的焦点,我们在这个位置输入“姓名”,这样当我们执行这个宏的时候窗口上的焦点就会移动到“姓名”这个字段上来了。基本上每个操作都有操作参数,有的多一些,有的少一些,有的是必须填写的,有的则可以取默认的值。只有设置好参数的宏操作才是合法的。不然ACCESS就不会接受。

  刚才我们所做的只是这个宏的第一个操作,将查询的焦点移到“姓名”这个字段上,下一步我们要再加一个操作去找到“姓名”这个字段中的相应记录。要实现这些,就将鼠标移动到表格的第二行,然后在操作这一个格选取“FINDRECORD”,现在我们来设定操作参数,参数“查找内容”这一栏中,我们输入“=[需要查询的值].value”,这个“需要查询的值”是窗体上一个专门用来输入查询值的文本框的名字,而“匹配”这一栏中选择“整个字段”,“格式化搜索”选“是”,其他的几个参数都可以取默认,将这些选好以后。“查询”宏就建好了。当然别忘了保存整个宏啊。

  虽然建好了整个宏,但这些操作之间是如何执行的?

  其实这很简单,我们再看一个例子,如下图所示。

实例窗体

  在这个例子当中,有三个宏名,这三个宏可以成为一个宏组。如果我们执行整个宏组,这些宏将会按照从上到下的顺序执行,相应的操作也都会从上到下执行,如果我们只是执行这个宏组中的某个宏,那么在执行过程当中,只有这个宏的各个操作会按照从上到下的方向一一执行,而其他宏的操作就不会执行。

  如果宏一的第一个操作条件不满足后,宏一的其他几个操作仍然要执行,在宏的设计表格中,每行的“条件”字段只是对同一行的“操作”字段有约束力,而对其他的操作则不起条件约束作用了。

  在ACCESS中,宏并不能单独执行,必须有一个触发器。而这个触发器通常是由窗体、页及其上面的控件的各种事件来担任的。比如在窗体上单击一个按钮,这个单击过程就可以触发一个宏的操作。

  现在建立一个窗体。用一个按钮单击事件来触发我们刚才新建的宏“查询”。首先将表“员工简历”上的“姓名”等字段显示在这个窗体上,然后在这个窗体上再添加一个文本框,用这个文本框来输入要查询的员工姓名,注意还要将这个文本框的名字改为“需要查询的值”,完成之后在窗体上添加一个按钮,并把它的名字改为“查询”。添加好以后就可以在这个按钮的属性上设置宏“查询”的触发事件了。

  首先我们选中这个按钮,然后打开这个按钮的属性,如下图所示。

命令按钮属性框

  在属性选项卡上选择“事件”选项,然后将鼠标移动到“单击”选项右边的方框内,单击鼠标左键,这时在这个方框右侧会出现一个“向下”按钮,单击这个按钮,在弹出的下拉选单中单击“宏1.查询”项,这样可以了。以后当这个窗体以数据表视图出现的时候,单击这个按钮就可以执行我们刚才建立的宏了。

  现在我们将视图切换到窗体的数据表视图。我们可以通过单击记录选定器上的不同按钮移动到不同的员工记录上去,现在我们将我们需要查询的员工姓名输入到文本框“需要查询的值”中去,输入完以后,单击“查询”按钮,现在员工记录已经跳到我们刚才所输入的那个员工位置上去了。

  要打开宏设计窗体中的条件或宏名栏,只要将鼠标移动到工具栏上的“条件”或“宏名”按钮上,然后单击这个按钮,看到这个按钮凹陷下去,这时在设计窗体上就打开了“条件”或“宏名”栏。

  而要关闭这两个栏或其中的一个栏时,也只要将鼠标再移动到工具栏上的“条件”或“宏名”按钮上,单击这个按钮左键,当这个按钮变平以后,“条件”或“宏名”栏就关闭了。 

  

  在宏执行之前给宏设定条件是非常普遍的一种做法,这样就可以有条件地执行某些宏命令,在这个输入框内我们可以像在给查询制定规则那样使用“表达式生成器”来完成条件的设定,要打开“表达式生成器”只要在这个条件网格内单击鼠标右键,并单击弹出菜单上的“生成器......”命令就可以了,如下图所示。  

表达式生成器

  在Access中,可以直接执行创建好的宏,这通过在宏设计器窗口中单击工具栏上的“执行”按钮就可以执行宏了,但常常会遇到一些问题,这时就需要依靠Access提供的测试功能来修改错误,其中一个主要的方法就是单步执行宏。

  首先要单击“执行”菜单上的“单步”命令。这时会弹出一个对话框,如下图所示,在这个对话框上,单击“单步”按钮以执行显示在“宏单步执行”对话框中的操作,单击“停止”按钮,以停止宏的执行并关闭对话框。单击“继续”按钮,以关闭单步执行并执行宏的未完成部分。

单步执行对话框

  如果宏中存在错误,在按照上述过程单步执行宏时将会在窗口中显示“操作失败”对话框,这个对话框将显示出错误操作的操作名称、参数以及相应的条件。利用该对话框可以了解在宏中出错的操作,然后,单击“暂停”按钮进入宏设计窗口对出错宏进行相应的操作修改。

  将宏保存为模块,可以加速宏操作的执行速度。要将宏转化为模块,只要在数据库窗口中,选中这个宏,然后“文件”菜单下的“另存为”命令,如下图所示,然后选择将它保存为模块。并单击“确定”按钮就可以将这个宏保存为同名的“模块”了。

另存宏对话框

宏转化对话框

  • 上一篇:ACCESS入门教程(十六)模块与“VBA”语言
  • 下一篇:ACCESS入门教程(十四)用图表显示数据