使用宏或 VBA 正确关闭 access 2003 中的隐藏窗口?

Posted

技术标签:

【中文标题】使用宏或 VBA 正确关闭 access 2003 中的隐藏窗口?【英文标题】:Properly close a hidden window in access 2003 with Macro or VBA? 【发布时间】:2013-10-28 21:10:32 【问题描述】:

如何在 Access 2003 中正确关闭隐藏的表单/窗口,而不转到顶部菜单并选择取消隐藏并手动关闭它?

我只知道一种方法(因为我还不知道 VBA...),那就是使用 Close 操作创建一个按名称关闭窗口/窗体的宏。但是,当我这样做时,它给了我一个错误并说它找不到命名的对象。 (但是,如果我检查取消隐藏窗口列表,则该窗口确实已关闭。)

这真的很烦人,因为显然它正在关闭隐藏窗口,然后抛出一个错误,说它找不到对象(这当然会打乱宏序列)。

有没有更“正确”的方式来关闭隐藏窗口?

所以,答案是……我遇到了 ID-10-T 错误。我在关闭后再次引用隐藏表单,由于代码执行的瞬时性质,我错过了这个事实......

...问题解决了。 PEBKAC。

【问题讨论】:

【参考方案1】:

我刚刚在 Access 2010 中测试了这些,它们似乎都可以在隐藏表单上正常工作:

来自宏...

操作:关闭窗口 对象类型:表格 对象名称:AgentsForm 保存:

来自 VBA 代码...

DoCmd.Close acForm, "AgentsForm", acSaveNo

【讨论】:

经过更多测试,我设法用宏来做到这一点,但似乎隐藏窗口必须由打开它的同一个宏关闭,否则它不会这样做。不确定这是 2003 年的事情还是什么。 @DjM 也许 Access 2003 在这方面有点不同,但是对于我在 Access 2010 中的测试,我只是使用 DoCmd.OpenForm "AgentsForm",acNormal,,,,acHidden 从 VBA 即时窗口打开了表单。此外,我从来没有遇到过 VBA DoCmd 变体的问题,因为... 曾经。

以上是关于使用宏或 VBA 正确关闭 access 2003 中的隐藏窗口?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 VBA 函数没有正确关闭 Access?

如何在 Access 2003 和 VBA 中使用控件集合

Access 2003 - VBA - 加入两种类型(字符串 = 日期)

Access 2003 VBA SQL“参数太少”错误

关于 MS Access 2003 和 VBA 编程

MS Access 2003 - 创建 MDE 文件失败:错误 VBA 已损坏?