分享

ACCESS--宏的使用

 哈飞扬 2016-11-23

什么是宏

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

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

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

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

 

为什么要用宏

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

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

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

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

 

查看宏设计窗口

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

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

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

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

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

创建宏

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

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

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

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

 

了解宏包含的操作

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

  其实这很简单,我们再看一个例子

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

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

补充一:打开/关闭宏设计窗体中的条件和宏名栏

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

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

 

执行宏

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

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

  首先我们选中这个按钮,然后打开这个按钮的属性

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

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

 

补充二:为宏的操作设定条件

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

 

补充三:调试宏

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

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

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

 

补充四:将宏转化为模块补

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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多