3

MS-Access のマクロは、あるコンピューターでは半分の時間しか正しく実行されませんが、別のコンピューターでテストすると 100% の時間で実行されます。

これは、マクロの実行速度が速すぎて、次のステップに移る前に 1 つのステップの実行を終了していないためだと思われます。ステップ間で一時停止する方法はありますか?

私のマクロの手順は次のとおりです。

  1. Import-Data の RunCode
  2. 追加クエリを開く
  3. 追加クエリを開く
  4. 更新クエリを開く
  5. Delete-Data の RunSQL

最初のステップと最後のステップは両方のコンピューターで 100% の確率で実行されますが、中間のステップはエラーなしで失敗することがあります。マクロの間にこのコードを追加して、速度を低下させようとしました。それを正しく適用する方法、またはこの解決策が正しいかどうかさえわかりません。

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

どんな助けでも大歓迎です、前もって感謝します。

4

1 に答える 1

3

SlowMacro()関数で2秒間休止させたい場合は、Access Webのコードを使用できます。API:コードをスリープ状態にする

それなら、これはあなたの機能として機能するはずだと思います。

Public Function SlowMacro()
    sSleep 2000
End Function

これらは、私がリンクしたそのWebページの重要な部分です。

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 に答える