Access 2010中的快捷菜单

我想为我的形式,这是我从来没有做过创建一个快捷菜单,我有问题。 我复制和粘贴代码示例形成一个办公室的博客,但它只是做事情更加困难。 我只是想4个命令运行,它们是公共职能。 问题是我无法做出正面或反面形成的例子。
希望有人可以点我认为是有点更容易理解对于一个新手的例子吗?

詹姆斯

--------------解决方案-------------

下面是一个例子。 请阅读代码后的注释。

“*****的代码开始*****

'创建一个快捷菜单

子CreateContextMenu()
昏暗的CBR命令栏
DIM CBB作为CommandBarButton的
“删除命令栏,如果它已经存在
DeleteContextMenu
“创建类型msoBarPopup的新命令栏
设置CBR = CommandBars.Add(名称:=“MyBar”,位置:= msoBarPopup)
随着CBR
“添加第一个项目
设置CBB = .Controls.Add(类型:= msoControlButton)
用CBB
.Caption =“项目1”
.Style = msoButtonCaption
.OnAction =“MyFunc1”
结束与
“添加第二个项目
设置CBB = .Controls.Add(类型:= msoControlButton)
用CBB
.Caption =“项目2”
.Style = msoButtonCaption
.OnAction =“MyFunc2”
结束与
“添加第三个项目
设置CBB = .Controls.Add(类型:= msoControlButton)
用CBB
.Caption =“3项”
.Style = msoButtonCaption
.OnAction =“MyFunc3”
结束与
“添加第四个项目
设置CBB = .Controls.Add(类型:= msoControlButton)
用CBB
.Caption =“项目4”
.Style = msoButtonCaption
.OnAction =“MyFunc4”
结束与
结束与
结束小组

“删除快捷菜单

子DeleteContextMenu()
在错误恢复下一页
的CommandBars(“MyBar”)。删除
结束小组

'这些功能由快捷菜单项执行

功能MyFunc1()
MSGBOX“这是MyFunc1”,vbInformation
结束功能

功能MyFunc2()
MSGBOX“这是MyFunc2”,vbInformation
结束功能

功能MyFunc3()
MSGBOX“这是MyFunc3”,vbInformation
结束功能

功能MyFunc4()
MSGBOX“这是MyFunc4”,vbInformation
结束功能

“****的代码结束****

您可以根据需要修改CreateContextMenu。 你必须每次更改代码的时间运行一次。 命令栏将被保存在当前数据库,并将于只是数据库中。

您可以通过窗体,报表或控件的快捷菜单栏属性设置为命令栏(MyBar在这个例子中)的名称指定命令栏的快捷菜单中窗体,报表或控制。 这将使访问自动显示。

在我张贴的例子中,快捷菜单项被设置为仅显示一个字幕:

.Style = msoButtonCaption

如果你只想要一个图标:

.Style = msoButtonIcon

如果你想要一个图标和标题:

.Style = msoButtonIconAndCaption

还有,你可以将图像分配到菜单项两种方式:

可以(优选正确大小的)复制图像的clipbard,然后使用的CommandBarControl的PasteFace方法粘贴图像。

或者你可以在的CommandBarControl的FaceID属性设置为数百个内置的图标之一的数字ID。 见http://peltiertech.com/Excel/menus.html一个免费的实用程序来显示所有的内置图标(这有点在Office 2007/2010繁琐,但它的工作原理)。

下面是一个例子。 请阅读代码后的注释。

“*****的代码开始*****

'创建一个快捷菜单

子CreateContextMenu()
昏暗的CBR命令栏
DIM CBB作为CommandBarButton的
“删除命令栏,如果它已经存在
DeleteContextMenu
“创建类型msoBarPopup的新命令栏
设置CBR = CommandBars.Add(名称:=“MyBar”,位置:= msoBarPopup)
随着CBR
“添加第一个项目
设置CBB = .Controls.Add(类型:= msoControlButton)
用CBB
.Caption =“项目1”
.Style = msoButtonCaption
.OnAction =“MyFunc1”
结束与
“添加第二个项目
设置CBB = .Controls.Add(类型:= msoControlButton)
用CBB
.Caption =“项目2”
.Style = msoButtonCaption
.OnAction =“MyFunc2”
结束与
“添加第三个项目
设置CBB = .Controls.Add(类型:= msoControlButton)
用CBB
.Caption =“3项”
.Style = msoButtonCaption
.OnAction =“MyFunc3”
结束与
“添加第四个项目
设置CBB = .Controls.Add(类型:= msoControlButton)
用CBB
.Caption =“项目4”
.Style = msoButtonCaption
.OnAction =“MyFunc4”
结束与
结束与
结束小组

“删除快捷菜单

子DeleteContextMenu()
在错误恢复下一页
的CommandBars(“MyBar”)。删除
结束小组

'这些功能由快捷菜单项执行

功能MyFunc1()
MSGBOX“这是MyFunc1”,vbInformation
结束功能

功能MyFunc2()
MSGBOX“这是MyFunc2”,vbInformation
结束功能

功能MyFunc3()
MSGBOX“这是MyFunc3”,vbInformation
结束功能

功能MyFunc4()
MSGBOX“这是MyFunc4”,vbInformation
结束功能

“****的代码结束****

您可以根据需要修改CreateContextMenu。 你必须每次更改代码的时间运行一次。 命令栏将被保存在当前数据库,并将于只是数据库中。

您可以通过窗体,报表或控件的快捷菜单栏属性设置为命令栏(MyBar在这个例子中)的名称指定命令栏的快捷菜单中窗体,报表或控制。 这将使访问自动显示。

这是相同的错误我与其他例子有:
... 无法找到对象“MyBar”。

我敢肯定,我只是失去了一些东西。

詹姆斯

你从哪里得到这个错误吗? 我跑了数据库的代码在Access 2010,和它的工作确定 - 快捷菜单中显示正确的形式和文本框的快捷菜单栏我设置为MyBar。

我现在明白了汉斯。 我需要你指示来运行的功能。
所以,任何时候我改变什么,我需要运行代码。
还有一件事。
反正检索命令的图标? 在另一个例子中,它们曾呼吁FaceID一个项目? 这我假设是图标。

在我张贴的例子中,快捷菜单项被设置为仅显示一个字幕:

.Style = msoButtonCaption

如果你只想要一个图标:

.Style = msoButtonIcon

如果你想要一个图标和标题:

.Style = msoButtonIconAndCaption

还有,你可以将图像分配到菜单项两种方式:

可以(优选正确大小的)复制图像的clipbard,然后使用的CommandBarControl的PasteFace方法粘贴图像。

或者你可以在的CommandBarControl的FaceID属性设置为数百个内置的图标之一的数字ID。 见http://peltiertech.com/Excel/menus.html一个免费的实用程序来显示所有的内置图标(这有点在Office 2007/2010繁琐,但它的工作原理)。

太好了。

非常感谢,
詹姆斯

汉斯:这是sooooooooooooooo Access 2010中的帮助比弱小的例子好得多。 我很欣赏你的文章!

我同意!

詹姆斯

要看到所有的图标:

进行以下快捷菜单。 (我去到2000年,但可能有更多的图标)

子CreateContextMenu()
昏暗的CBR命令栏
DIM CBB作为CommandBarButton的
“删除命令栏,如果它已经存在
DeleteContextMenu
“创建类型msoBarPopup的新命令栏
设置CBR = CommandBars.Add(名称:=“MyBar”,位置:= msoBarPopup)
随着CBR
对于i = 1到2000
设置CBB = .Controls.Add(类型:= msoControlButton)
用CBB
.Caption =“项”&我
.Style = msoButtonIconAndCaption
.FaceId = I
结束与
下一个
结束与
cbr.Controls.Add
结束小组

有一个需要引用的库? 编译代码时,我得到错误。

分类:办公室 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 2.012 (s). 10 q(s)