3

我在 MS-Access 中有一个宏,它只能在一台计算机上正常运行一半的时间,但在另一台计算机上测试时,它运行 100% 的时间。

我怀疑这是因为宏运行得很快,并且在移动到下一个步骤之前没有完成一个步骤的执行。有没有办法可以在步骤之间暂停?

我的宏的步骤如下:

  1. 导入数据的运行代码
  2. 打开追加查询
  3. 打开追加查询
  4. 打开更新查询
  5. 用于删除数据的 RunSQL

第一步和最后一步在两台计算机上都执行 100% 的时间,但中间步骤有时会失败而没有错误。我试图在宏之间添加这段代码以减慢它的速度。我不知道如何正确应用它,或者这个解决方案是否正确。

Public Function SlowMacro()
Application.Wait (Now + TimeValue("0:00:02"))
End Function

任何帮助表示赞赏,在此先感谢。

4

1 回答 1

3

如果您希望您的SlowMacro()函数暂停 2 秒,您可以使用 Access Web: API: Make code go to Sleep 中的代码

然后我认为这应该作为你的功能。

Public Function SlowMacro()
    sSleep 2000
End Function

这些是我链接的那个网页的关键部分。

Private Declare Sub sapiSleep Lib "kernel32" _
        Alias "Sleep" _
        (ByVal dwMilliseconds As Long)

Sub sSleep(lngMilliSec As Long)
    If lngMilliSec > 0 Then
        Call sapiSleep(lngMilliSec)
    End If
End Sub
于 2012-07-23T20:50:52.943 回答