|
3#
楼主 |
发表于 2010-9-9 14:29:13
|
只看该作者
本帖最后由 sgrshh29 于 2010-9-9 15:15 编辑
回复 sgrshh29 的帖子
三、下面来一步步编写这个示例
1、先新建一个mdb,然后新建一个窗体命名为frmMain,对窗体的式样进行一些设置后保存
2、然后在vba窗体里,引用microsoft windows common controls 6.0 (sp6)
3、按照从简至繁的原则,从Toolbar开始,看名称知道是一个工具栏控件
a、在窗体添加一个Toolbar控件
在窗体的设计视图中,打开工具箱,找到Microsoft Toolbar Control 6.0,将其添加到窗体页眉,适当调整一下大小。
命名为Toolbar0
b、在窗体添加一个Imagelist控件
Toolbar中的Botton是可以带图标的。为此,在窗体上添加一个Imagelist做为图标来源。
在窗体设计视图,从工具箱中找到Microsoft Imagelist Control 6.0 (sp6),将其添加到窗体
命名为Imagelist3,选择属性对话框,为它添加图标
c、设置Toolbar,有二种方法,一种是在Toolbar的属性对话框中直接设置。另一种是用代码设置
这里采用第一种方法设置属性
用第二种方法添加Button和ButtonMenu
添加Button
语法是:Toolbar.Buttons.Add Index, Key, Text, Type, Face
如果这个Button是下拉式的,还可以添加第二层ButtonMenu
语法是:Toolbar.Buttons(Index).ButtonMenus.Add Index, Key, Text
d、因为用的是access,理所当然用数据表来保存Toolbar的各项参数,创建二个表
一个命名为tblTbrBtn,保存Button参数
另一个命名为tblTbrBtnMenu,保存ButtonMenu参数
二个表之间用ID和PID组成一对多关系,并钩选实施参照完整性、级联更新和级联删除
e、在表中输入数据
f、在窗体加载事件中输入代码,加载Toolbar
Private Sub Form_Load()
加载Toolbar Me.Toolbar0
End Sub
g、下面是加载Toolbar过程,新建一个模块,命名为modToolbar,将下面的过程复制到模块
Sub 加载Toolbar(ByVal objTbr As Object, ByVal objImglist As Object)
Dim Rs As Object
With objTbr
.Top = 0
.Left = 0
.Width = Forms("frmMain").InsideWidth
Set Rs = CurrentDb.OpenRecordset("select * from tblTbrBtn order by id")
Do Until Rs.EOF
.Buttons.Add CInt(Rs(0)), CStr(Rs(1)), CStr(Rs(2)), CStr(Rs(3)), CInt(Rs(4))
Rs.movenext
Loop
Set Rs = Nothing
Set Rs = CurrentDb.OpenRecordset("select * from tblTbrBtnMenu order by pid, id")
Do Until Rs.EOF
.Buttons(CInt(Rs(1))).ButtonMenus.Add CInt(Rs(0)), CStr(Rs(2)), CStr(Rs(3))
Rs.movenext
Loop
Set Rs = Nothing
End With
End Sub
h、加载完成后的窗体,图13
i、为所有的Button和ButtonMenu的单击事件指定过程
Private Sub Toolbar0_ButtonClick(ByVal Button As Object)
If Button.Key = "Exit" Then
DoCmd.Close acForm, Me.Name
Else
TbrClick Button.Key
End If
End Sub
Private Sub Toolbar0_ButtonMenuClick(ByVal ButtonMenu As Object)
TbrClick ButtonMenu.Key
End Sub
j、下面的按钮过程放在模块modToolbar中
Sub TbrClick(ByVal strAction As String)
MsgBox "当前调用的过程:" & strAction
End Sub
k、点击后的效果。至于调用的过程,也放在同一个模块中,如何写代码等具体使用时继续。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|