如何在 Access VBA 中声明对 ActiveX“ListView”控件的引用?
Posted
技术标签:
【中文标题】如何在 Access VBA 中声明对 ActiveX“ListView”控件的引用?【英文标题】:How do I declare a reference to an ActiveX "ListView" Control in Access VBA? 【发布时间】:2015-06-25 13:45:54 【问题描述】:我正在使用 Access 2003。
在“参考”(工具 > 参考 > 浏览...)中,我添加了“Microsoft Windows Common Controls 6.0 (SP6)”(c:\windows\system32\mscomctl.ocx)并创建了/在窗体上插入控件“Microsoft ListView Control 6.0 (SP6)”的实例,并为控件命名为“MyListView”。
我想用一些自定义方法来装饰 MyListView,所以我创建了一个包含成员字段(“lvw”)的类(“DecoratedListView”)。
我希望 'lvw' 指向/引用 MyListView,但我不知道在其声明中使用什么引用类型。重要的是,我还想捕获lvw的ColumnClick事件。
我试过了:
Public WithEvents lvw As Object
Public WithEvents lvw As Control
Public WithEvents lvw As MSComctlLib.ListView.2
当我没有工作时
set lvw = MyForm.MyListView
谁能解释我应该如何创建对现有对象 (MyListView) 的引用 (lvw)?
【问题讨论】:
【参考方案1】:Access 无法真正处理这类事情。
OnClick 应该在您的 MyForm 上可用,但您无法在属性的“事件”选项卡中看到它。 ActiveX 控件太复杂了。相反,进入代码并在左上角的组合框中选择 MyListView。然后,您将在右上角的组合框中找到扩展的 ActiveX 事件。其中之一是 ColumnClick。
不确定您的全部意图是什么,但如果您想模仿一个孤立的 DecoratedListView 类,则创建一个仅包含 ListView 控件的特殊表单,并将其用作其他表单的子表单。您可以像引用任何其他子窗体控件对象一样从父窗体引用 ListView。通过检查基本上是父表单的 me.parent.name 对象,可以从 listview 子表单运行父特定代码。您甚至可以通过将默认的 Private Sub 更改为 Public Sub 来调用 subform 的 listview 事件。
【讨论】:
【参考方案2】:我还不能发表评论,所以我会输入它作为答案。 您是否在视图、对象浏览器中查看了该对象可用的方法和属性?假设你想要的东西是可能的,你应该能够使用这些信息写出你想要的东西。
【讨论】:
以上是关于如何在 Access VBA 中声明对 ActiveX“ListView”控件的引用?的主要内容,如果未能解决你的问题,请参考以下文章
过程声明与 Access-Vba 中具有相同名称的事件或过程的描述不匹配