[액세스 VBA] 폼을 나갈 때 레코드 변경 값을 저장할지 묻는 사용자 확인창 출력하기
정리. sualchi
출처: http://msdn.microsoft.com/library/bb507728
폼을 떠날 때 레코드 수정 사항을 저장할지 물어보는 확인 창을 출력해보자.
그러려면 폼의 Before Update 이벤트를 처리하는 프로시저를 작성해야 한다.
이벤트 프로시저 작성 절차
-
작업하려는 폼 화면을 디자인뷰(Design View) 상태로 만든다.
-
'폼 디자인 도구'의 '디자인(Design)' 탭에서 도구(Tools) 그룹의 속성 시트(Property Sheet)를 눌러서 속성 시트() 창을 연다.
-
속성 시트 창의 가장 위에 있는 선택 목록에서 '폼(Form)'을 선택한다.
-
그 아래에서 이벤트(Event) 탭을 누른다.
-
Before Update 이벤트 항목 우측에 있는 작은 아래방향 화살표를 누른다.
-
[이벤트 프로시저](Event Procedure)를 선택하고, 화살표 옆의 생략 단추(...)를 누른다.
-
Visual Basic이 실행되면, Form_BeforeUpdate 이벤트 프로시저가 만들어져서 나타난다.
-
프로시저를 다음처럼 고치고, 저장 단추를 누른 후에 창을 닫고 폼으로 돌아간다.
[VBA 코드]
Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim strMsg As String
Dim iResponse As Integer
' 출력할 메시지
' "Do you wish to save the changes?"
strMsg = "변경된 상태를 저장하겠습니까?" & Chr(10)
' "Click Yes to Save or No to Discard changes."
strMsg = strMsg & "저장하려면 <예>, 변경을 취소하려면 <아니요>를 누르세요. "
' 메시지 상자 출력
iResponse = MsgBox(strMsg, vbQuestion + vbYesNo, "Save Record?")
' 사용자 선택에 맞게 처리
If iResponse = vbNo Then
' 변경 취소
DoCmd.RunCommand acCmdUndo
' Cancel 상태 갱신
Cancel = True
End If
End Sub
이제 폼에서 레코드 항목을 수정한 다음에, 폼을 닫으려고 하면 저장 여부를 묻는 확인창이 뜰 것이다.
<이상>
'DBMS, 데이터베이스' 카테고리의 다른 글
폼에서의 데이터는... (0) | 2011.08.18 |
---|---|
다이너셋, 다이너셋(업데이트 일관성 없음), 스냅숏에 대해서[p134-07] (0) | 2011.08.18 |
[VBA] BeforeInsert 이벤트 프로시저 예제 (0) | 2011.08.09 |
SQL 구문 기초 2 (0) | 2011.08.08 |
SQL 기초 문장 예제로 정리하기 (0) | 2011.08.08 |