【问题标题】:Why is my VBA for MS Access Buggy?为什么我的 MS Access 的 VBA 是错误的?
【发布时间】:2012-06-09 15:07:13
【问题描述】:

这是一个模糊的问题,很难解释。我正在尝试编写我的访问数据库,但 VBA 部分真的让我很烦。每当我输入内容并点击空格时,它会自动重做该空格并将我重新设置为我输入的前一个单词。此外,Intellisense 会出现片刻,闪烁并消失,并将光标恢复到我刚刚输入的文本。这导致我不断在不应该出现的地方输入内容,并且代码元素之间缺少空格。有谁知道为什么会发生这种情况?我使用的数据库是在 Access 2007 中创建的,但我是在 2010 年开发的。顶部显示的是 Microsoft Access 2007-2010。

感谢您的帮助。

【问题讨论】:

标签: ms-access ms-access-2007 vba


【解决方案1】:

最可能的原因是您打开了一个带有活动计时器事件的表单。

正在发生的情况是,当您正在编辑代码时,代码会定期运行。每次其他代码运行时,VBA 的即时编译器都会运行。

通常在您编写代码时,每当您从一行代码移动到另一行代码时,就会发生这种实时编译:引发编译错误、修剪尾随空格等。

但是,在您的情况下,您有一些正在运行的代码。在它可以运行之前,编译器必须运行。它做的事情和平常一样。最烦人的是,它会从您的行中修剪尾随空白。


解决方案是关闭带有活动计时器事件的表单,或者在编辑代码时将计时器间隔设置为 0。

【讨论】:

  • 感谢您的解释。这似乎已经解决了大部分问题。据我了解,之前的开发人员使用带有活动计时器事件的隐藏表单来跟踪“全局”。无论如何,关闭所有表格似乎可以解决问题。谢谢!
  • 接受你的作为正确答案。出于某种原因,没有任何计时器的表单仍然会导致此问题。在我编码时不得不关闭这些表单有点令人沮丧。键入此响应是一种解脱,因为我不必捣碎空格键并重置光标:)
  • @Scott 您是否对新的空数据库也有同样的问题,还是仅限于这个特定的数据库?
  • 我在 Access 2010 中创建的任何新数据库都没有这个问题。我只在处理我继承的数据库(在 Access 2007 中创建)时遇到这个烦人的问题。只有在我为某些表单进行编码时才会发生这种情况,而且我在每个表单的代码中都没有特别看到会导致它在我处理它时不断编译的情况。
  • 打开受影响表单的属性表,转到“事件”选项卡,检查On Timer 框是否已填写(可能是[Event Procedure]=SomeFunction())。另外,检查Timer Interval 框中是否包含0 以外的内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-05
  • 1970-01-01
相关资源
最近更新 更多