Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-宏

使用宏创建自定义菜单和快捷菜单

时 间:2014-05-28 08:24:34
作 者:宏鹏(转载)   ID:21115  城市:上海
摘 要:适用于2007以上版本
正 文:

可以使用 Access 宏来创建在右键单击窗体、报表或各个控件时显示的自定义快捷菜单。还可以创建在针对特定窗体或报表的功能区上显示的自定义菜单。

若要通过使用宏来创建菜单,请执行以下三个主要步骤:

1. 创建定义菜单命令的宏组。

2. 另建一个创建菜单本身的宏。

3. 将菜单附加到控件、窗体、报表或整个数据库。

以下各部分将详细地介绍这些步骤。

步骤 1:创建包含菜单命令的宏组

在此步骤中,您将创建一个宏组,其中每个宏都是快捷菜单上的一个单独的命令。

宏组是包含两个或多个独立宏的单个宏对象。可通过在宏名称列中为每个宏键入一个名称来标识各个宏。在下图中,3”就是一个宏组。“NotFoundMsg”“FoundMsg”是该组中的单个宏,每个宏都包含两个宏操作。

 

 注释   宏名列默认情况下是隐藏的。若要显示宏名列,请在设计选项卡上的显示/隐藏组中,单击宏名



a. 创建选项卡上的其他组中,单击。如果此命令不可用,请单击模块类模块按钮下面的箭头,然后单击

b. 设计选项卡上的显示/隐藏组中,单击宏名以显示宏名列。

c. 对于要在自定义快捷菜单上显示的每个命令,请执行以下操作:

·   宏名列中,输入要在快捷菜单上显示的文本(例如,打印保存)。

 注释   若要创建访问键以便您能够使用键盘来选择命令,请在命令名称后作为访问键的字母前面键入一个与号 (&)(例如,保存(&S)”)。该字母将在菜单中显示为带有下划线。

·   操作列中,选择要在单击快捷菜单上的命令时执行的第一个操作。

·   如果要在选择此命令时执行多个操作,请将这些操作添加到后续行中。对于每个后续操作,保留宏名单元格为空。

 注释   要在两个菜单命令之间创建一条直线,请在宏名栏中相应的菜单命令之间输入一个连字符 (-)

d.  保存并命名该宏,例如 mcrShortcutMenuCommands

下图显示了针对自定义菜单或快捷菜单的宏组示例。

 

 

步骤 2:创建用于创建菜单的宏

此步骤看似多余,但若要从您在步骤 1 中创建的宏组创建快捷菜单,则必须创建另一个包含 AddMenu 宏操作的宏。有时此宏称为菜单宏

a. 创建选项卡上的其他组中,单击。如果此命令不可用,请单击模块类模块按钮下面的箭头,然后单击

b. 在该宏的第一行上,选择操作列表中的“AddMenu”

c. 操作参数下的菜单名称框中,键入菜单的名称(例如,报表命令)。此参数不是必需的,但如果您打算在步骤 3 中将该菜单添加到功能区选项卡(如窗体或报表的加载项选项卡)上,则建议使用此参数。如果要在步骤 3 中将该菜单添加为快捷菜单,则可忽略菜单名称参数。

d. 菜单宏名称框中,输入您在步骤 1 中创建的宏的名称。

e. 保存并命名该宏,例如 mcrAddShortcutMenu

下图显示了创建在步骤 1 中设计的菜单的菜单宏的示例。

 

 

步骤 3:将菜单附加到控件、窗体、报表或数据库中

根据您希望菜单出现的位置,使用以下一个或多个过程。

向窗体或报表的加载项选项卡中添加菜单

如果您希望菜单显示在特定窗体或报表的加载项选项卡上,请使用此过程,如下图所示:

 

 

a. 在导航窗格中,右键单击您希望显示菜单的窗体或报表,然后单击设计视图

b. 设计选项卡上的显示/隐藏组中,单击属性表

c. 通过从属性表任务窗格顶部的列表中选择窗体报表,选择整个对象。

d. 属性表其他选项卡上的快捷菜单属性框中,键入您在步骤 2 中创建的宏的名称(在本示例中为“mcrAddShortcutMenu”)。

下次打开相应的窗体或报表时,加载项选项卡将显示在功能区中。单击该选项卡可看到添加的菜单。

有关功能区自定义技术(例如,添加自定义选项卡或隐藏默认选项卡)的详细信息,请参阅文章自定义功能区

功能区是 Microsoft Office Fluent 用户界面 的一个组件。

作为窗体、报表或控件的快捷菜单添加菜单

如果您希望在右键单击特定的窗体、报表或控件时显示菜单,请使用此过程,如下图所示:

 

 

e. 在导航窗格中,右键单击您希望显示快捷菜单的窗体或报表,然后单击设计视图

f. 设计选项卡上的显示/隐藏组中,单击属性表

g. 选择要将快捷菜单附加到的控件或对象。

 注释   若要选择整个对象,请从属性表任务窗格顶部的列表中选择窗体报表

h. 属性表其他选项卡上的快捷菜单栏属性框中,键入您在步骤 2 中创建的宏的名称(在本示例中为“mcrAddShortcutMenu”)。

作为全局快捷菜单添加菜单

可使用此过程替换当前数据库中的所有默认快捷菜单。已附加到指定窗体、报表或控件的自定义快捷菜单不会受到影响。

i. 单击“Office 按钮,然后单击“Access 选项

j. “Access 选项对话框中,单击当前数据库

k.功能区和工具栏选项下的快捷菜单栏框中,键入您在步骤 2 中创建的宏的名称(在本示例中为“mcrAddShortcutMenu”)。

 注释 

·  自定义快捷菜单将替换其附加到的对象的默认快捷菜单。如果要在这些菜单上留用某些 Access 命令,请使用 RunCommand 操作将这些命令放入到需要它们的菜单所对应的宏组中。

·  附加到控件的自定义快捷菜单将取代在数据库中定义的任何其他自定义快捷菜单。附加到窗体或报表的自定义快捷菜单将取代自定义全局快捷菜单。

·  在为窗体、报表或数据库指定了一个菜单宏后,只要打开该窗体、报表或数据库,Access 就会运行该菜单宏。如果您在该窗体、报表或数据库打开的状态下,更改了定义其命令的菜单宏或宏组,则必须先关闭该窗体、报表或数据库,然后重新打开以查看更改。

·  若要创建子菜单 (子菜单:用户指向更高一级菜单的命令时出现的菜单。),请按照步骤 1 创建仅包含子菜单命令的单独的宏组。然后,再次按照步骤 1 为更高级别的菜单定义命令。通过使用 AddMenu宏操作,将子菜单添加为更高级别宏组中的项。下图显示了包含子菜单的菜单的宏组,并显示了生成的快捷菜单。宏组中的第三行用于创建导出到(&E)...”子菜单 (mcrSubMenu)

 

 

可以通过在每个菜单级别的宏组中使用 AddMenu 操作来创建多个级别的子菜单。请确保为每个 AddMenu 操作的菜单名称参数提供一个值,否则子菜单将在更高级别的菜单中显示为空行。

·  只在顶级菜单宏中支持宏条件。换言之,可以在菜单宏中使用条件来确定是否将显示特定菜单或快捷菜单,但是这种做法只适用于顶级菜单。不能使用条件来显示或隐藏菜单中的命令或子菜单。您还可以使用条件来隐藏或显示自定义快捷菜单或全局快捷菜单。

·   您在步骤 2 中创建的菜单宏还可以是宏组的一部分。例如,如果不同的对象或控件有若干个快捷菜单,则可以创建单个宏对象来包含所有必需的菜单宏。确保显示宏名列并为每个宏键入唯一的名称。在步骤 3 中,使用下面的表示法来引用宏:macrogroupname.macroname。例如,mcrAddShortcutMenus.AddMenu2

 



Access软件网官方交流QQ群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助