如何减慢MS-Access中宏的执行速度

时间:2012-07-23 20:26:12

标签: performance vba ms-access

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

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

我的宏的步骤如下:

  1. 导入数据的RunCode
  2. 打开追加查询
  3. 打开追加查询
  4. 打开更新查询
  5. RunSQL for Delete-Data
  6. 第一步和最后一步在两台计算机上执行100%的时间,但中间步骤有时会失败而没有错误。我试图在宏之间添加此代码以减慢它的速度。我无法弄清楚如何正确应用它,或者这个解决方案是否正确。

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

    感谢任何帮助,提前致谢。

1 个答案:

答案 0 :(得分: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