2008-08-29 151 views
1

我有以下情況:我構建了一個帶有子窗體的Access窗體(通過某個鍵將記錄鏈接到主窗體的記錄)。當我嘗試刪除子窗體中的任何記錄時,我收到以下消息:「由於您和另一用戶試圖更改數據,Access已暫停該操作」(德語近似翻譯)。有誰知道如何從子窗體中刪除這些記錄(以及分別從窗體後面的表中刪除)。從Access數據庫中刪除記錄,刪除時出錯

回答

1

如果您當前正在「編輯」當前表單,則不允許該操作。編輯記錄有時可以通過簡單地點擊字段內或通常不會考慮「編輯」的其他簡單操作來觸發。

這是Access使用RunCommand方法刪除記錄之前撤消任何編輯通常避免:

DoCmd.RunCommand acCmdUndo 
0

同時檢查「行鎖定機制」你有。我有一段時間沒有使用Access,但我記得你可以在表格屬性中使用set。您可以訪問這些屬性,點擊表格左上角着名的「點」以顯示其屬性。那麼如果你使用Access,你知道我在說什麼。

1

samjudson建議:

DoCmd.RunCommand acCmdUndo

您還可以使用Me.Undo,撤消上次編輯在運行代碼的形式。

或者Me!MySubForm.Form.Undo撤銷子窗體控件名爲「MySubForm」的子窗體中最後一次未保存的編輯。

您也可以使用Me!MyControl.Undo取消上次編輯到特定控件。

「DoCmd.RunCommand acCmdUndo」會將撤消操作應用於當前選定的對象,但您無法確定它是否適用於控件或表單級別。使用我建議的命令完全可以消除被取消的內容。

請記住,在控件的AfterUpdate事件觸發後,撤消操作不會撤銷對控件的編輯,或者在其AfterUpdate事件觸發後將窗體撤消到某個窗體(即,數據已保存到底層數據表)。