Office中国论坛/Access中国论坛
标题:
ADP自定义功能区怎样加载回调函数
[打印本页]
作者:
guzhonghua26
时间:
2014-1-14 09:57
标题:
ADP自定义功能区怎样加载回调函数
ADP设计好自定义功能区后,怎样通过回调函数打开窗体。
作者:
zhuyiwen
时间:
2014-1-15 09:17
我将你的模块1改名为modRibbon
修改其内容为
Public Function LoadRibbon() As Boolean
' 从 xml 文件加载功能区
On Error GoTo Err_LoadRibbon
Dim fn As Long
Dim strText As String
Dim strOut As String
fn = FreeFile ' 获取一个文件号
' 打开当前工程文件夹中 AccRibbon.xml 文件
' 该文件中存储功能区的 xml 代码
Open CurrentProject.Path & "\AccRibbon.xml" For Input As fn
' 按行读取并连接起来保存到 strOut 变量
Do While Not EOF(fn)
Line Input #fn, strText
strOut = strOut & strText
Loop
Close fn ' 关闭文件
' 加载功能区,其名称为 "Main"
Application.LoadCustomUI "Main", strOut
LoadRibbon = True
LoadRibbon_Exit:
Exit Function
Err_LoadRibbon:
Select Case Err.Number
Case 32609
' Ribbon already loaded
Debug.Print "功能区已经加载"
Case Else
MsgBox "Error: " & Err.Number & vbCrLf & _
Err.Description, vbCritical, _
"Error", Err.HelpFile, Err.HelpContext
End Select
Err.Clear
GoTo LoadRibbon_Exit
End Function
复制代码
作者:
zhuyiwen
时间:
2014-1-15 09:19
你的xml文件的内容为
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" loadImage="CallBackLoadImage" onLoad="onRibbonLoad">
<ribbon startFromScratch="false">
<tabs>
<tab id="tabMain" label="自定义">
<group id="dbCustomGroup4" label="刷新">
<button idMso="DataRefreshAll" label="全部刷新" size="large" enabled="true"/>
</group>
<group id="grpMenu" label="自定义">
<button id="cmdMenu" label="打开窗体" size="large" imageMso="SlideMasterInsertLayout" onAction="onOpenFormEdit" tag="打开窗体"/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
复制代码
作者:
zhuyiwen
时间:
2014-1-15 09:30
在xml的第一行,指定了两个回调函数
loadImage="CallBackLoadImage" onLoad="onRibbonLoad"
loadImage指定功能区加载功能区中所使用的图片要使用的回调函数 CallBackLoadImage
onLoad指定功能加载时执行的回调函数 onRibbonLoad
第一个选项卡的名称为"tabMain",显示标签为“自定义”
在这个选项卡中有两个分组
"dbCustomGroup4" 刷新
"grpMenu" 自定义
在"grpMenu"选项卡中有一个"cmdMenu"(打开窗体)的按钮,其指定的回调函数名为"onOpenFormEdit"
作者:
zhuyiwen
时间:
2014-1-15 09:50
这样,你必须在一个模块中编写全局的回调函数
例如,模块名为modCallBack
Option Explicit
Public Sub onRibbonLoad(ByRef Ribbon As IRibbonUI)
MsgBox "加载了功能区"
End Sub
Public Sub CallBackLoadImage(strImage As String, image)
MsgBox "加载功能区图片"
End Sub
Public Sub onOpenFormEdit(control As IRibbonControl)
MsgBox "you click id:" & control.id & " tag:" & control.Tag
DoCmd.OpenForm "窗体1"
End Sub
复制代码
作者:
zhuyiwen
时间:
2014-1-15 10:43
[attach]53010[/attach]
附件传上,自己细看
作者:
guzhonghua26
时间:
2014-1-15 13:46
非常感谢朱总的实例。
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3