模块中的 MS Access 2013 事件触发器,而不是类模块

Posted

技术标签:

【中文标题】模块中的 MS Access 2013 事件触发器,而不是类模块【英文标题】:MS Access 2013 event trigger in module, not class module 【发布时间】:2016-02-17 05:28:04 【问题描述】:

我有许多具有相同控件的表单,例如 Year,它们用于不同的报告。有几十个表单带有名为 Year 的控件,带有 GotFocus / OnFocus 事件触发器。我试图避免使用几乎相同的代码编写一堆类模块,这些代码需要类似:

Private Sub Year_OnFocus()

我想在模块中编写一个函数,这样我就可以相对于它的形式来引用年份:

Forms!Home!NavigationSubForm.Form.Year.OnGotFocus

这似乎不起作用,更不用说与Private Sub Year_GotFocus 的行为方式相同了。所以想知道是否有人有任何建设性的建议。

【问题讨论】:

【参考方案1】:

您正在寻找WithEvents。文档很差,但这里有一个很好的介绍。浏览到标题A Little History

A Little History

【讨论】:

或者更好的是,只需在该文档中搜索“With Events”。这将直接导致代码示例。请注意,每个“年”控件仍需要几行代码才能将其与通用事件处理程序类挂钩。如果所有这些控件都在子窗体中,您可以将设置代码放在主窗体中。

以上是关于模块中的 MS Access 2013 事件触发器,而不是类模块的主要内容,如果未能解决你的问题,请参考以下文章

Access 2013:我可以使用数据宏触发 MS SQL SP 而不延迟 Access 中的执行吗?

MS Access 停止触发 Form_Open 事件

我希望从 ms-access 2013 数据库中的所有表单、报告和模块中导出 vba 源代码

MS Access VBA:打开报表时,报表所依赖的查询完成后会触发啥事件?

MS 访问事件加载表单

用于计算新记录中的字段的事件驱动数据宏 - MS Access