我的 Access 2000 DB 给我带来了问题 - 有时(尚未查明原因)“书”表单不会关闭。单击其关闭按钮什么也不做,文件->关闭什么也不做,即使关闭 Access 也不会导致任何操作。我没有此表单的 OnClose 处理程序。我能找到的唯一解决方法是打开 Vba 编辑器,更改该表单的代码(甚至添加一个空格,然后立即删除该空格),然后返回关闭“书”表单,将其关闭,然后说“不,我不想保存更改”。只有这样它才会关闭。有什么帮助吗?
6 回答
我认为,这是一个论坛帖子,描述了您面临的相同问题。下面的摘录说明了一种解决方法。
我所做的是将代码放在关闭按钮上,将任何子表单的源对象重新分配给空白表单,例如:
me!subParts.sourceobject = "subBlank" 'subBlank 是我的完全空白的表单,没有代码和控件等 docmd.close acForm, "fParts", acSaveNo
上面 2 行是我发现阻止访问提示弹出的唯一方法。
另一种选择是
(Me.Checkbox)
或我喜欢的语法:
(Me!Checkbox)
在我看来,这个主题的帖子中有很多混乱。原发帖人选择的答案引用了一篇文章,其中用户提示将设计更改保存到表单,但这里描述的问题似乎是表单关闭失败,而不是保存问题(保存问题仅在描述进入 VBE 并进行代码更改的解决方法中出现)。
我想知道原始用户是否设置了不正确的 VBE 选项?如果您打开 VBE 并转到 TOOLS | 选项,在常规选项卡上,您会看到有关错误处理的几个选项。应该选择 BREAK ON UNHANDLED ERRORS 或 BREAK IN CLASS MODULE,但重要的是要认识到,如果您使用前者,您可能看不到某些类型的错误。
除了对复选框控件的引用似乎是导致问题的原因之外,实际上并没有足够的详细信息来诊断更多信息,但是有许多 Access 编码最佳实践可以帮助您避免其中一些奇怪的情况。Tony Toews 的最佳实践页面中与代码相关的建议是一个很好的起点。
那肯定很奇怪。您在表单上有任何计时器控件吗?如果这样做,请尝试在 OnClose 中禁用它。
询问您是否要保存更改的消息框可能会显示在表单后面。我相信此消息框是模态的,因此您必须单击是或否才能对表单执行任何操作,这就是您无法关闭它的原因。
您的表单是否有卸载事件?可以取消,如果是,表单在表单视图中时不会关闭。它只会在设计视图中关闭,当您编辑 vba 代码时,当您编辑代码时,表单在 Access 窗口中所做的事情。
您的表单是否有复选框、切换按钮或选项按钮?Access 2000 中存在一个错误,如果您在未明确使用 vba 代码中的 Value 属性的情况下测试值,Access 将不会关闭,如下所示:
If Me.chkbox Then
相对:
If Me.chkbox.Value Then