MS Access 2010에서 쿼리를 실행하는 동안 상태 표시 줄 업데이트에 관한 질문을 게시했습니다. 관심이 있으시면 How to show progress on status bar when running a sequence of queries in MS Access을 참조하십시오.코드 실행시 상태 표시 줄의 진행 상태 표시 방법 (쿼리가 아님)
작동하지 않는 코드에 대한 매우 간단한 질문입니다. 누군가가 대답 할 수 있다면 더 복잡한 질문에 대한 코드가 작동하지 않는 이유를 이해하는 데 도움이되기를 바랍니다.
Function PutMessageInStatusBar1()
Dim RetVal As Variant
Dim i As Long
RetVal = SysCmd(4, "Before loop 1")
For i = 1 To 500000000
Next
RetVal = SysCmd(4, "Before loop 2")
For i = 1 To 500000000
Next
RetVal = SysCmd(4, "Before loop 3")
For i = 1 To 500000000
Next
RetVal = SysCmd(5)
End Function
코드를 실행하는 데 매크로를 작성했습니다. 경고를 끄고 위의 함수를 호출하고 "Finished"라는 메시지 상자를 표시 한 다음 경고를 켭니다.
실행하면 상태 표시 줄에 "준비"라고 표시됩니다. 아마도 코드에서 루프 1을 실행하는 동안 일시 중지가 발생합니다. 그런 다음 "이전 루프 2"와 마지막으로 "루프 3 이전"을 표시합니다.
왜 "Before loop 1"이 표시되지 않습니까?
RetVal = syscmd (5)를 함수의 시작 부분에 두어 어떤 차이가 있는지 확인하려고했습니다. 그렇지 않았습니다.
이 완벽! 정말 고마워요. 미치게 만들어 줬어요. 나는 또한 상수와 절전 기능을 사용하여 주셔서 감사합니다 - 훨씬 깨끗한 코드를 만듭니다. – Zajonc
반갑습니다. Sleep 기능은 32 비트 VBA에서 유용합니다. 나는 그것이 64 비트 VBA를 위해 변경 될 필요가 있을지도 모른다라고 생각한다. 그러나 나는 그것을 아직도 다루지 않고 있었다. – HansUp
한 가지 질문 : 왜 SysCmd 5 대신 SysCmd acSysCmdSetStatus, ""를 사용 했습니까? – Zajonc