模块中的 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 2013 数据库中的所有表单、报告和模块中导出 vba 源代码