【问题标题】:Can I test if MS Access 2003 startup options were executed/bypassed?我可以测试是否执行/绕过了 MS Access 2003 启动选项?
【发布时间】:2017-12-05 09:13:33
【问题描述】:

我在 MS Access 2003 数据库中配置了启动选项,这样我的名为 application 的主窗体将在启动时出现。我知道我可以通过在打开文件时按住 SHIFT 来绕过这些启动选项。

但是,我在这个主窗体application 上有以下代码:

Private Sub Form_Close
  DoCmd.Quit
End Sub

当我处于编辑模式时我想绕过它,因为它当前也在编辑模式下退出 MS Access(这意味着当我查看绕过启动选项的实际表单时,而不是在设计模式下查看表单时) .

有没有办法在 VBA 中检测启动选项是否被执行/绕过?

【问题讨论】:

  • 隐藏的创业公司怎么样?它是不可见的,因此不需要任何形式设计。仅用于在启动或关闭时运行代码。如果您使用Form_Unloadevent,您可以添加确认对话框并在需要时取消。
  • @BitAccesser 这些都是很好的建议。谢谢!尽管这不是我要寻找的具体内容,但您仍然可以将其放在答案中,我会赞成。 :)

标签: ms-access vba ms-access-2003


【解决方案1】:

使用隐藏的启动表单(在Form_Load 上用Me.Visible = False 隐藏),不需要设计。然后使用Form_Unload(Cancel as Integer)事件,你也可以添加一个确认对话框。

Private Sub Form_Unload(Cancel As Integer)
    If MsgBox("Do you really want to quit?", vbYesNo) = vbNo Then
        Cancel = True
    Else
        ' do something before quit, but Form_Close will raise too
    End If
End Sub

启动表单可用于在启动时触发 shift,因为它未加载(除非您在其他地方启动它),如果使用 shift,您可以检测到什么。

注意不要意外关闭表单(例如,在关闭所有打开的表单功能中)。

【讨论】:

  • 我可以将表单设置为隐藏在某处的属性对话框中吗?我似乎找不到它。或者我是否需要在Form_Load(或类似的地方)中使用 VBA 执行此操作?例如,我知道这可以通过Me.Visible = False 完成。
猜你喜欢
  • 1970-01-01
  • 2010-09-13
  • 1970-01-01
  • 2010-11-19
  • 1970-01-01
  • 2011-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多