2016-06-08 3 views
-1

내 탐색 서브 폼의 언로드 이벤트에서 다음 코드가 있습니다. 네비게이션 양식 액세스, 언로드 이벤트 취소

If MsgBox ("Changes have not been locked and will be lost. Do you wish to proceed?", vbYesNo) = vbNo Then 
    Cancel = True 
End If 

사용자가 부모의 다른 탐색 버튼 중 하나를 클릭

는 관계없이 선택한 항목의 폐쇄 및 활성 하위 폼을 삭제의 예/아니오 메시지 상자를 표시 없지만 이동합니다 형성한다. 탐색 버튼을 클릭하여 발생하는 탐색을 취소 할 수 있습니까?

+0

Access는 다른 곳으로 이동하자마자 레코드를 저장하기 때문에 "BeforeUpdate"이벤트를 사용합니다. 언로드 (Unload) 이벤트보다 –

+0

언 바운드 텍스트 상자의 값을 사용하는 저장 프로 시저를 통해 수동으로 레코드를 저장하는 단추가 있습니다. unload 이벤트는 변경 사항이 저장되지 않았고 사용자에게 프롬프트를 표시한다는 사실을 포착합니다. – Cloude

답변

0

if 문 외부에있는 내용이 명확하지 않지만 Exit Sub 명령을 사용해야합니다. 이렇게하면 내비게이션을 완전히 멈추게 할 수 있습니다 (자체가 Sub 인 경우).

If MsgBox ("Changes have not been locked and will be lost. Do you wish to proceed?", vbYesNo) = vbNo Then 
    Exit Sub 
End If 
+0

저장되지 않은 변경 사항 (민감한 정보가 포함되어 있으므로 포함하지 않았 음)을 확인하는 If 문 이외의 모든 언로드 이벤트에 해당하는 것입니다. form_unload 이벤트에서 Exit Sub를 사용하면 취소되지 않습니다. 귀하의 양식은 어쨌든 언로드됩니다. 이 경우 취소가 작동하지 않는 이유는 탐색 양식의 하위 양식 때문입니다. 저장되지 않은 변경 사항이있는 동안 탐색 버튼을 사용 중지했을뿐입니다. – Cloude