Hi,各位同学好!我是吴明课堂的答疑老师之一陈婉。祝大家新年快乐!

今天我给大家分享的主题是在access窗体中如何为列表控件自定义右键菜单。


效果演示动图:

准时下班系列!Access合集之第4集—窗体编程如何实现自定义右键菜单_自定义活动菜单


组成结构解析:

  1.  一张员工表—数据取自吴明老师《Access零基础到应用系统教程》课件;
  2. 一个员工列表窗体(可见)和一个修改员工窗体(隐藏);
  3. VBA代码。


所需技能分析:

  • access表基础知识
  • access窗体设计基础
  • access vba语法
  • access 窗体事件基础
  • 少量SQL基础


关键代码展示:

'自定义员工列表快捷菜单
Private Function addUserListMenuBar()
'使用此对象需添加引用Microsoft Office 1X.0 Object Library包
Dim cmb As Office.CommandBar
Dim cmbControl As Office.CommandBarControl
Set cmb = CommandBars.Add("selfDefUserListMenuBar", msoBarPopup, False, True)
With cmb
Set cmbControl = .Controls.Add(msoControlButton)
' Change the caption displayed for the control.
cmbControl.Caption = "修改"
cmbControl.OnAction = "editUser"
Set cmbControl = .Controls.Add(msoControlButton)
' Change the caption displayed for the control.
cmbControl.Caption = "删除"
cmbControl.OnAction = "deleteUser"
End With
Set cmbControl = Nothing
Set cmb = Nothing
End Function
'打开窗口时触发
Private Sub Form_Load()
Call addUserListMenuBar
'设置员工用户列表控件的快捷菜单为自定义菜单selfDefUserListMenuBar
Me!userList.ShortcutMenuBar = "selfDefUserListMenuBar"
End Sub
    '关闭窗口时触发
    Private Sub Form_Unload(Cancel As Integer)
    '删除添加的自定义菜单
    Call deleteUserListMenuBar
    End Sub


    Private Function deleteUserListMenuBar()
    CommandBars("selfDefUserListMenuBar").Delete
    End Function


    重难点分析:

    • 图中案例综合应用了:表设计、窗体设计、窗体事件、VBA编程等知识模块,只有掌握了这些知识,有了扎实的基础之后,才能更高效地自学和提升自己的Access水平;
    • 多练习老师在课程里教授的查阅官网API的方法。目前国内网络上,关于Access编程的参考资料实在是太少;
    • 官网API需要在有很好的基础上再去研究,普通人去看等同看天书。


    上述技能在吴明老师的《Access零基础到应用系统教程》中均可学到。


    如需系统学习Access,可查看课程链接:​吴明老师Access零基础到应用综合课​


    该课程可以使学员以最少的学习时间,搭建完善的数据库和Access窗体编程知识架构。


    案例文档下载链接:

    ​​​https://pan.baidu.com/s/1Nl3JpZW3gLUPIfD1jW2hCg​

    提取码:wmkt​