使用宏创建自定义菜单和快捷菜单
时 间: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源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- Access快速开发平台企业版--...(11.18)
- 不会用多表联合查询,多表查询没结果...(11.16)
- 【案例分享】主键字段值含有不间断空...(11.16)
- Access快速开发平台--后台D...(11.14)
- 微软Access邀测新Monaco...(11.12)
- Access列表框左右互选、列表框...(11.11)
- 高效率在导入数据前删除记录(11.10)
- Access报价单转订单示例代码(11.08)
- Access系统自带的日期选择器不...(11.08)
- 分享一下Access工程中的acw...(11.07)