Delete 事件

此頁沒有內容條目
內容

expandtri全部顯示

在用戶執(zhí)行某些操作(例如,按下 Delete 刪除一條記錄)來刪除記錄、記錄實際上被刪除之前,Delete 事件發(fā)生。

Private Sub Form_Delete(Cancel As Integer)

Cancel    該設置確定是否發(fā)生 Delete 事件。將 Cancel 參數設為 True (–1) 可取消 Delete 事件。

說明

若要在這些事件發(fā)生時執(zhí)行事件過程,請將 OnDelete、BeforeDelConfirmAfterDelConfirm 屬性設置為宏的名稱或 [事件過程]。

當記錄被刪除后,它其實保存在臨時緩沖區(qū)中。BeforeDelConfirm 事件發(fā)生在 Delete 事件之后(或者如果已經刪除多條記錄,在所有記錄被刪除之后每條記錄都有一個 Delete 事件發(fā)生)、在“刪除確認”對話框顯示之前。取消 BeforeDelConfirm 事件將從緩沖區(qū)中恢復一條或多條記錄,并阻止“刪除確認”對話框的顯示。

AfterDelConfirm 事件發(fā)生在一條或多條記錄實際上被刪除之后,或者一個或多個刪除操作被取消之后。如果 BeforeDelConfirm 事件沒有被取消,在顯示“刪除確認”對話框之后將發(fā)生 AfterDelConfirm 事件。即使 BeforeDelConfirm 事件已被取消,AfterDelConfirm 事件仍將發(fā)生。AfterDelConfirm 事件過程將返回有關刪除的狀態(tài)信息。例如,可以使用與 AfterDelConfirm 事件相關的宏或事件過程來重新計算受刪除記錄影響的總計。

如果取消 Delete 事件,BeforeDelConfirm 和 AfterDelConfirm 事件將不會發(fā)生,并且“刪除確認”對話框也不會顯示。

注釋  如果清除“選項”對話框(通過單擊“工具”菜單上的“選項”即可打開)中“編輯/查找”選項卡上“確認”下面的“記錄更改”復選框,則 BeforeDelConfirm 和 AfterDelConfirm 事件將不會發(fā)生,并且“刪除確認”對話框也不會顯示。

當 Delete 事件發(fā)生時,通過運行宏或事件過程,可以阻止記錄被刪除或只允許在特定條件下刪除記錄。也可以使用 Delete 事件來顯示對話框,在記錄被刪除之前詢問用戶是否要刪除該記錄。

若要刪除一條記錄,可以單擊“編輯”菜單上的“刪除記錄”。這將刪除當前的記錄(記錄選定器所指定的記錄)。也可以單擊記錄選定器或單擊“編輯”菜單上的“選擇記錄”來選擇記錄,然后按 Del 將它刪除。如果單擊“刪除記錄”、當前記錄的記錄選定器或“選擇記錄”,則焦點所在的控件的 ExitLostFocus 事件將會發(fā)生。如果已經更改了記錄中的任意數據,則記錄的 BeforeUpdateAfterUpdate 事件將發(fā)生在 Exit 和 LostFocus 事件之前。如果單擊另一條記錄的記錄選定器,選定記錄的 Current 事件也會發(fā)生。

刪除記錄之后,焦點將移動到被刪除記錄的下一條記錄,并且這條記錄的 Current 事件將會發(fā)生,接著該記錄中第一個控件的 EnterGotFocus 事件隨之發(fā)生。

接下來就在 Microsoft Access 顯示“刪除確認”對話框詢問用戶確認刪除之前,BeforeDelConfirm 事件發(fā)生。在確認選項或取消刪除選項來響應對話框之后,AfterDelConfirm 事件發(fā)生。

可以同時刪除一條或多條記錄。Delete 事件是在每條記錄被刪除之后發(fā)生,這使用戶可以在記錄被真正刪除之前訪問每條記錄中的數據,并且可以在 Delete 宏或事件過程中有選擇地確認或取消每個刪除操作。當刪除多條記錄時,對于最后一條被刪除記錄的下一條記錄,其 Current 事件和該記錄中第一個控件的 Enter 和 GotFocus 事件直到所有記錄都被刪除后才發(fā)生。也就是說,每條選定記錄的 Delete 事件都會發(fā)生,而且必須所有的選定記錄都已刪除后才允許其他事件發(fā)生。BeforeDelConfirm 和 AfterDelConfirm 事件也在所有選定記錄被刪除之后才發(fā)生。

在刪除記錄前,可以使用 Delete 宏顯示“刪除確認”對話框,以詢問用戶是否要刪除記錄。

無論何時刪除記錄,都可以使用 BeforeDelConfirm 或 AfterDelConfirm 宏進行響應。但是,BeforeDelConfirm 和 AfterDelConfirm 宏無法設置確定是否顯示“刪除確認”對話框的參數,也無法返回指明刪除狀態(tài)的參數,因此通常要用事件過程處理這些事件。

可以在 Delete 宏中使用 CancelEvent 操作來取消刪除。

可以在 BeforeDelConfirm 宏中使用 CancelEvent 操作來取消對所有已刪除記錄進行的刪除。如果這樣做,將不顯示“刪除確認”對話框。但是,如果取消 BeforeDelConfirm 事件,則會發(fā)生 AfterDelConfirm 事件。

不能在 AfterDelConfirm 宏中使用 CancelEvent 操作。

示例

下面的示例顯示阻止用戶從表中刪除記錄的過程。

若要試用該示例,請將下列事件過程添加到基于表的窗體中。切換到窗體“數據表”視圖并且試著刪除一條記錄。

Private Sub Form_Delete(Cancel As Integer)

    Cancel = True

    MsgBox "This record can't be deleted."

End Sub