2013-07-08 43 views
1

我有一些VBA代碼詢問用戶他們是否希望在MS Access中關閉表單之前保存記錄。這是代碼的樣子:「記錄複製到分析&支持表」提示用戶作出選擇的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 
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 

如果你想消息,無論出現在第一個消息框的選擇,然後

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 
顯示的消息
+0

感謝你打破了2。對我來說,選擇第一個選項實際上更有意義。我已經運行了......並且一切似乎都奏效了。但它似乎問我是否想要保存兩次?任何想法如何解決? – JT2013

+0

''MsgBox'帶''你想保存嗎?「'出現兩次?或者2個不同的'MsgBox',因爲後者是有意的。 – ashareef

+0

''MsgBox'帶''你想保存嗎?''彈出來,比我彈出保存,比它再次彈出... – JT2013

相關問題