【问题标题】:Run VBA code whenever a tabbed form is reselected in Access每当在 Access 中重新选择选项卡式表单时运行 VBA 代码
【发布时间】:2013-05-22 22:18:03
【问题描述】:

编辑:为澄清起见,我在下面的帖子中谈论的是选项卡式文档浏览,而不是选项卡控件。但是,如果您正在寻找大致相同的问题但关于选项卡控件,那么 Gord Thompson 的答案是正确的。一个价格,两个答案!

我有一个使用选项卡式文档的 Access 2007 数据库。每次用户选择名为“报告”的表单时,我都需要运行一些 VBA 代码,方法是打开它或单击它的选项卡(如果它已经打开)。

我可以通过在每次使用它时关闭它并在 OnLoad 事件上运行代码来实现大致相同的效果,但理想情况下,我希望它保持打开状态,以便用户可以保留各种下拉框的设置,他们已经在“报告”上设置的单选框等。

我希望有一个事件可以在选项卡重新选择时运行代码,但我的猜测(OnCurrent 和 GotFocus)似乎都不起作用(OnCurrent 仅在打开表单时有效,就像 OnLoad 一样)。

非常感谢任何想法 - 在 Google 上找不到我正在寻找的东西,尽管我怀疑这是因为我不知道我在寻找什么。

【问题讨论】:

  • +1 Access 2007 和更高版本中的“当前数据库”选项包括一个名为“文档窗口选项”的设置,它提供“重叠窗口”和“选项卡式文档”之间的选择。此问题与“选项卡式文档”设置处于活动状态的表单有关。

标签: ms-access ms-access-2007 vba tabbed-document-interface


【解决方案1】:

TabControl 的.Value 属性返回当前页面的索引(从零开始)。所以,如果我有一个名为 TabCtl14 的 TabControl 包含两个页面,FirstPageSecondPage,那么代码...

Private Sub TabCtl14_Click()
If Me.TabCtl14.Value = 1 Then
    MsgBox "SecondPage was clicked."
End If
End Sub

...每当我单击 TabControl 中的“SecondPage”选项卡时,都会显示 MsgBox。

【讨论】:

  • 澄清一下,我指的是选项卡式文档(以查看表单的方式),而不是表单中的 TabControl。
  • @BFDatabaseAdmin 啊,好吧,那么 Form.OnActivate 可能是您在这种情况下想要使用的。
【解决方案2】:

找到了我正在寻找的答案。这是 OnActivate 事件。

【讨论】:

    猜你喜欢
    • 2012-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多