2013-07-08 10 views
1

MS Access에서 양식을 닫기 전에 레코드를 저장할지 묻는 VBA 코드가 있습니다. 이 같은 코드가 모습입니다 : "분석 & 지원 표에 기록을 복사"나는 또한 그들이하려면 사용자에게 요청 그 바로 위의 후 또 다른 메시지 상자를 추가 할VBA 사용자에게 선택을 묻는 코드

Private Sub Form_BeforeUpdate(Cancel As Integer) 


    Dim ctl As Control 

    On Error GoTo Err_BeforeUpdate 


    If Me.Dirty Then 

     If MsgBox("Do you want to save?", vbYesNo + vbQuestion, _ 
       "Save Record") = vbNo Then 
     Me.Undo 
     End If 
    End If 

Exit_BeforeUpdate: 
    Exit Sub 

Err_BeforeUpdate: 
    MsgBox Err.Number & " " & Err.Description 
    Resume Exit_BeforeUpdate 
End Sub 

. 그렇다면 "Insert_Query"라는 저장된 쿼리를 실행하는 코드를 원합니다. 그렇지 않으면 새 레코드로 이동하십시오.

VBA를 코딩 할 때 경험이 거의 없기 때문에 지원이 필요합니다.

아무도 도와 줄 수 있습니까?

답변

2

당신은 메시지가 그들이 당신이

If MsgBox("Do you want to save?", vbYesNo + vbQuestion, "Save Record") = vbNo Then 
    Me.Undo 
End If 
If MsgBox("Copy the record to the Analysis & Support Table?", vbYesNo + vbQuestion, "Copy Record") = vbYes Then 
    CurrentDb.Execute("Insert_Query") 
Else 
    'go to new record 
end if 
다음 첫 번째 메시지 상자의 선택에 관계없이 표시 할 메시지를 원하는 경우에 기록 후

If MsgBox("Do you want to save?", vbYesNo + vbQuestion, "Save Record") = vbNo Then 
    Me.Undo 
Else 
    If MsgBox("Copy the record to the Analysis & Support Table?", vbYesNo + vbQuestion, "Copy Record") = vbYes Then 
     CurrentDb.Execute("Insert_Query") 
    Else 
     'go to new record 
    end if 
End If 

을 저장하려면 예 말할 경우에만 표시 할 경우

+0

2 개를 깨뜨려 주셔서 감사합니다. 실제로 제 1 옵션을 선택하는 것이 더 의미가있었습니다. 나는 그것을 달렸다. 그리고 모든 것이 작동하는 것처럼 보인다. 하지만 두 번 저장하길 원한다면 묻는 것 같습니다. 어떤 생각을 어떻게 고쳐야합니까? – JT2013

+0

''저장 하시겠습니까? ''가있는'MsgBox'는''두 번 나타납니다? 또는 2 개의 다른'MsgBox'가 필요합니다. – ashareef

+0

''저장 하시겠습니까? '라는 메시지가'MsgBox'에 저장됩니다. – JT2013