由於各種原因,我想在我的表單上設置一個自定義按鈕以保存當前記錄。我使用一個導航表單,並希望在保存條目時觸發相同的過程(完整性檢查,用戶輸入等),從而每當用戶按下「保存」按鈕或切換到另一個表單時。用戶將被有條件地要求確認該過程並因此能夠取消它。MS Access vba保存按鈕錯誤3021
一切都與一個非常奇怪和憤怒異常順利運行:每當我點擊「更新前」事件中節省一個新記錄按鈕和提示信息,我收到
RTE 3021( 「沒有當前記錄」)
沒有MsgBox,一切都很好。更奇怪的是: 當我通過使用導航窗體切換到另一個窗體來觸發保存過程(或者只需按下「外部」用於數據輸入的窗體)時,一切都很好。
這裏是一個簡約例子(與DoCmd.Save,重新查詢或acCmdSaveRecord相似的結果):
Private Sub vt_save_Click()
Me.Dirty = False
End Sub
Private Form_BeforeUpdate(Cancel As Integer)
Cancel = True
MsgBox "Test"
End Sub
任何想法?我根本無法繞過那個錯誤。
什麼是*簡約的例子*應該顯示?可能的錯誤來自'BeforeUpdate'觸發器中調用的* other *代碼(即完整性檢查,用戶輸入),無法在新記錄上運行。請發佈這樣的更完整的代碼。 – Parfait
我從來沒有使用BeforeUpdate事件的形式。我在按鈕Click事件中進行數據驗證。 – June7
@Parfait這個簡約的例子顯示了你所描述的內容。創建一個新的數據庫,一個表格,一個表格。創建一個記錄,輸入數據並按下按鈕。等voilá - 你會得到錯誤。 –