是什么可以阻止MS Access 2000表单关闭?

时间:2020-03-05 18:59:08  来源:igfitidea点击:

我的Access 2000 DB有时会导致我遇到问题(没有查明原因),"书"表不会关闭。单击其关闭按钮不执行任何操作,文件->关闭不执行任何操作,即使关闭Access也不会执行任何操作。我没有此表单的OnClose处理程序。我能找到的唯一解决方法是打开Vba编辑器,更改该表单的代码(甚至添加一个空格,然后立即删除该空格),然后返回以关闭" book"表单,将其关闭,然后说"不,我不想保存更改"。只有这样,它才会关闭。有什么帮助吗?

解决方案

回答

那肯定是奇怪的。表单上是否有任何计时器控件?如果这样做,请尝试在OnClose中将其禁用。

回答

表单后面可能会显示询问我们是否要保存更改的消息框。我相信此消息框是模态的,因此我们必须先单击"是"或者"否",然后才能对表单执行任何操作,这就是为什么无法将其关闭的原因。

回答

表单有卸载事件吗?这可以取消,如果是这样,则在窗体视图中时窗体不会关闭。它将仅在设计视图中关闭,当我们编辑vba代码时,即是我们在编辑代码时表单在"访问"窗口中执行的操作。

回答

我认为这是一个论坛帖子,描述我们面临的相同问题。以下摘录指出了一种解决方法。

What I do is to put code on the close button that reassigns the sourceobject
  of any subforms to a blank form, such as:
  
  me!subParts.sourceobject = "subBlank" 'subBlank is my form that is
  totally blank, free of code and controls, etc.
  docmd.close acForm, "fParts", acSaveNo
  
  The above 2 lines is the only way I've found to prevent the Access prompt
  from popping up.
  
  http://bytes.com/forum/thread681889.html

回答

表单有复选框,切换按钮或者选项按钮吗? Access 2000中有一个错误,如果我们在不显式使用vba代码中使用Value属性的情况下测试该值,Access将无法关闭,如下所示:

If Me.chkbox Then

相对:

If Me.chkbox.Value Then

回答

另一种选择是

(Me.Checkbox)

或者我的首选语法:

(Me!Checkbox)

在我看来,该主题的帖子中有很多混乱之处。原始张贴者选择的答案引用了一篇文章,其中用户提示将设计更改保存到表单,但是此处描述的问题似乎是表单关闭失败,而不是保存问题(保存问题仅在描述前往VBE并进行代码更改的解决方法中提出)。

我想知道原始用户是否设置了错误的VBE选项?如果我们打开VBE并转到"工具|选项,在"常规"选项卡上,我们将看到有关错误处理的几种选择。应该选择"无法解决的错误"或者"课程模块中断",但是重要的是要认识到,如果使用前者,则可能看不到某些错误。

除了对复选框控件的引用似乎已引起问题之外,实际上没有足够的细节来诊断更多问题,但是有许多Access编码最佳实践可以避免其中的一些怪异。 Tony Toews的"最佳实践"页面中与代码相关的建议是一个不错的起点。