摘要:对于开发基于数据库的中小型管理系统来说,采用Access 数据库应用程序直接能满足实际需求,其界面友好、易学好懂、开发简单、接口方便、功能强大,对程序设计能力的依赖性不高,使其成为最受欢迎的数据库管理系统之一。菜单操作是用户在使用应用程序时最有效的操作方法,但Access中没有专门的菜单设计器,文章介绍了利用宏来实现菜单的设计,为Access应用程序的开发者提供借鉴。
关键词:数据库管理;Access;宏;菜单
中图分类号:TP311 文献标识码:A 文章编号:1009-2374(2009)15-0073-02
Microsoft的数据库管理系统Access是一个桌面型的小型关系数据库,是当今业界最具影响力的应用系统,对于开发基于数据库的中小型管理系统来说,采用Access 数据库应用程序能直接满足实际需求,其界面友好、易学好懂、开发简单、接口方便、功能强大,对程序设计能力的依赖性不高,使其成为最受欢迎的数据库管理系统之一。
菜单(Menu)作为所有应用系统实现其功能的首选,而被开发者和用户所喜闻乐见,对于多数IDE(Integration Development Development)来说,它们本身大都提供了较为健壮的菜单设计器,使得其菜单设计变得十分简单。虽然在Access中没有专门的菜单设计器,但我们仍然可以利用宏来方便的进行菜单设计。
一、自定义全局菜单的设计
(一)菜单的类型
Access中涉及到的菜单一般有如下几种:
1.内置菜单。系统默认提供的命令列表,它涵盖了Access的所有功能和操作,是开发和设计应用程序的有力工具。
2.全局菜单。一种特殊的命令列表,Access所有窗口中皆显示此菜单。
3.快捷菜单。在工具栏、属性表、控件、对象或屏幕区域(如标题栏或窗口背景)上单击鼠标右键时所显示的命令列表。命令列表会根据单击对象的不同而改变。
在Access中,全局菜单和快捷菜单既可以是内置的也可以是自定义的,内置菜单(系统的)主要用于开发设计阶段,自定义菜单(应用程序的)主要用于应用程序中。本文主要讨论用Access的宏来进行自定义菜单的设计(全局菜单、快捷菜单)。
(二)设计过程
绝大部分的Windows应用程序都有自己的特殊菜单,要想在自己的应用程序中加入个性化的菜单,我们可以通过宏来方便的实现。
1.准备窗体。首先,创建一个名为My Form的窗体,本窗体用于承载自定义全局菜单。然后打开窗体的属性窗口,在“其它”选项页中的“菜单栏”属性(MenuBar)输入框中输入将要运行的菜单宏名称(如Main Menu)。即表示在运行My Form窗体时用MainMenu宏生成的菜单来取代Access内置全局菜单。
2.设计菜单宏
(1)主菜单设计。首先,进行主菜单的设计,其操作步骤为:1)选择Access对象——宏;2)用“新建”的方法打开Access宏设计器;3)选择Add Menu操作,并输入其操作参数;4)重复第3)步,直到输入完整个主菜单项,最后将其保存为“Main Menu”(注意此宏名称要与My Form窗体之“菜单栏”属性对应),具体如图1所示:
(2)一级子菜单设计。上述宏设计器中的“菜单宏名称”作为主菜单的下拉菜单项或一级子菜单,需要另外创建一个宏来进行设计。其操作步骤为:1)创建一个新宏;2)输入每个宏组的宏名(该宏名将作为下拉菜单项或一级子菜单名称显示),选择相应的操作并输入其操作参数;3)若某个一级子菜单下还有二级子菜单,则其操作应选为“Add Menu”,并输入相应操作参数;4)重复2)、3)步骤,直到输入完该主菜单下全部一级子菜单项,最后将其保存。
注意:保存时,宏名称一定要与主菜单中指定的某个“菜单宏名称”相对应。二级子菜单的设计与一级子菜单相同,其保存的宏名称为一级子菜单宏所指定的菜单宏名称。
3.菜单宏特殊符号处理
(1)访问键(&)。一种组合键,它能够不使用鼠标而将焦点移到菜单、命令或控件上。一般使用Alt加上字符组合键的方法(如Alt+F)。用来快速访问、执行某个菜单命令。
在Access宏中使用“&”符号为某个命令设置访问键,具体方法为:
为主菜单项设置访问键时,直接在其宏的“操作参数”之“菜单名称”栏内输入:(&字母),加上括号是为了与Windows风格相适应。
为子菜单项设置访问键时,直接在其“宏名”栏内输入:(&字母)。
在宏中定义的访问键,可直接应用于菜单,而不须另外激活。
(2)快捷键(^、{ })。能够直接执行菜单命令的功能键或组合键。一般用于子菜单项上。在Access中使用“^”或“{ }”符号来设置快捷键。在菜单中定义快捷键需要二个步骤来完成。一是要在菜单宏的“宏名”栏内输入相应的组合键,例如F5或Ctrl+O。此组合键是为了显示而输入的,它并不作用于菜单。二是要创建一个名称为AutoKeys的宏组来为组合键赋值(激活)。即为每组组合键设置相应的操作,使其作用于菜单。
(3)分隔线(-)。能够将菜单项进行适当分组,使得菜单更加直观和便于操作。设置方法为:在宏组间适当位置插入一个空行,在“宏名”栏内输入“-”(西文负号)即可。
(4)菜单状态设置。Windows风格的菜单项往往能随着操作对象的改变而随之增减或变灰、变实,即所谓敏感菜单,利用Access的SetMenuItem操作可以很方便的实现。一般情况下,使得菜单变为敏感是在程序中实现的,Access的VBA提供了这样的开发环境。
SetMenuItem操作的语法为:
DoCmd.SetMenuItem menuindex[, commandindex][, subcommandindex][, flag]
Menuindex:菜单索引值(见上文),从-1 开始的整数,代表活动窗口中的有效菜单索引,即主菜单项的编号。
Commandindex:命令索引值(见上文),从 0 开始的整数,代表由 menuindex 参数所选择的菜单上的有效命令索引,即一级子菜单项的编号。
Subcommandindex:子命令索引值,从 0 开始的整数,代表由 commandindex 参数所选择的子菜单上的有效子命令索引,即二级子菜单的编号。
Flag:固有常量,用来表示菜单项状态,它是如下常量之一:
AcMenuCheck 勾选
AcMenuGray 变灰
AcMenuUncheck 去掉勾选
acMenuUngray(默认值) 变实
二、自定义快捷菜单的设计
自定义快捷菜单的设计与自定义全局菜单的设计大同小异,其区别有二点:
1.在主菜单设计中忽略“菜单名称”,因为快捷菜单无须显示其主菜单名称。其一级子菜单项和二级子菜单项的设计与自定义全局菜单一样。
2.在菜单承载窗体属性窗口的“其它”选项中,将其设置成某个宏的名称,如:Main Menu。
三、结语
综上所述,在自定义菜单设计(包括全局菜单和快捷菜单)过程中,我们必须注意以下几个主要环节和步
骤:
1.创建一个承载窗体用来显示菜单,将其“菜单栏”属性(Menu Bar)或“快捷菜单栏”属性(Shortcut Menu Bar)设置成某个宏的名称。
2.设计由上述窗体指定了属性的菜单宏。
3.在菜单宏的设计过程中注意访问键、快捷键的定义和激活,使用分隔线使菜单更直观和清晰。
4.使用DoCmd对象的SetMenuItem操作,灵活设置菜单状态,使之成为一个敏感菜单。
我们对Access应用程序中的菜单所采用的设计思想和实现方法具有简单、快速、方便等特点,也具有良好的功能扩展能力,对于类似的计算机管理信息系统软件的设计和实现方面,也具有一定的参考价值。
参考文献
[1]寥信彦.Access 2002中文版入门与提高实用教程[M].北京:中国铁道出版社,2002.
[2]武马群.数据库应用技术Access 2000[M].北京:北京工业大学出版社,2005.
[3]Junwei Cao,Daniel P Spooner,James D Funereal Agent based resource management for grid computing[C]. In: Proc of the 2nd IEEE/ACM International Symposium on Cluster Computing and the Grid(CCGRID'02). Los Alamitos: IEEE Computer Society Press,2002.
[4]Buyya R,Chapin S,DiNucci D. Architectural Models for Resource Management in the Grid [EB/OL]. http://www.Buyya.eom/papers/gridmodels.pdf
[5]Karl,Donald,Ian Foster,Modeling Stateful Resources with Web Services [EB/OL]. http://www.globus.org/wsrf/ws-wsrf.pdf
[6]龚伟.用Visual Basic、ASP、Access 2002制作考试系统[M].北京:人民邮电出版社,2002.
[7]罗彬,刘独玉.用VB6. 0 设计Access 数据库的安全性[J].四川轻化工学院学报,2000,13(2).
作者简介:陈敏琳(1966-),女,湖南常德人,湖南文理学院助理实验师,研究方向:计算机应用。