BeforeDelConfirm 事件

此頁沒有內(nèi)容條目
內(nèi)容

expandtri全部顯示

在用戶將一條或多條記錄刪除到緩沖區(qū)之后、在 Microsoft Access 顯示對話框詢問用戶確認(rèn)刪除操作之前,BeforeDelConfirm 事件發(fā)生。

Private Sub Form_BeforeDeleteConfirm(Cancel As Integer, Response As Integer)

Cancel    該設(shè)置確定是否發(fā)生 BeforeDelConfirm 事件。將 Cancel 參數(shù)設(shè)為 True 可取消 BeforeDelConfirm 事件并阻止顯示“刪除確認(rèn)”對話框。如果取消了該事件,則會恢復(fù)原始記錄,但是 AfterDelConfirm 事件仍舊會發(fā)生。如果 Cancel 設(shè)為 True,會忽略 Response 參數(shù)。默認(rèn)情況下,Cancel 會設(shè)為 False (0),如果這樣,Microsoft Access 會使用 Response 參數(shù)值確定對 delete 事件的響應(yīng)類型。

Response    該設(shè)置確定 Microsoft Access 是否顯示“刪除確認(rèn)”對話框以詢問是否應(yīng)該刪除記錄。Response 參數(shù)可設(shè)為以下固有常量之一:

常量說明

acDataErrContinue 繼續(xù)而不顯示“刪除確認(rèn)”對話框。如果將 Cancel 參數(shù)設(shè)為 False 并且將 Response 參數(shù)設(shè)為 acDataErrContinue,Microsoft Access 可以在不提示用戶的情況下刪除記錄。

acDataErrDisplay(默認(rèn)值)顯示“刪除確認(rèn)”對話框。

說明

若要在發(fā)生這些事件時運(yùn)行事件過程,請將 BeforeDelConfirm 屬性設(shè)置為宏的名稱或 [事件過程]。

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

AfterDelConfirm 事件發(fā)生在一條或多條記錄被實(shí)際刪除之后,或者一個或多個刪除操作被取消之后。如果 BeforeDelConfirm 事件未被取消,則在“確認(rèn)刪除”顯示后即發(fā)生 AfterDelConfirm。即便 BeforeDelConfirm 事件被取消,AfterDelConfirm 事件仍會發(fā)生。

如果取消 Delete 事件,則 BeforeDelConfirm 事件不會發(fā)生,而“刪除確認(rèn)”對話框也不會顯示。

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

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

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

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

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

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

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

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

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

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

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

示例

以下示例演示了如何使用 BeforeDelConfirm 事件過程禁止“刪除確認(rèn)”對話框在刪除記錄時顯示和顯示自定義對話框。它還演示了如何使用 AfterDelConfirm 事件過程顯示一條消息,指出刪除操作是否按通常的方法進(jìn)行,以及是在 Visual Basic 中取消刪除還是由用戶取消刪除。

Private Sub Form_BeforeDelConfirm(Cancel As Integer, _

        Response As Integer)

    ' Suppress default Delete Confirm dialog box.

    Response = acDataErrContinue

    ' Display custom dialog box.

    If MsgBox("Delete this record?", vbOKCancel) = vbCancel Then

        Cancel = True

    End If

End Sub

Private Sub Form_AfterDelConfirm(Status As Integer)

    Select Case Status

        Case acDeleteOK

            MsgBox "Deletion occurred normally."

        Case acDeleteCancel

            MsgBox "Programmer canceled the deletion."

        Case acDeleteUserCancel

            MsgBox "User canceled the deletion."

    End Select

End Sub