WillChangeRecord 和 RecordChangeComplete 事件 (ADO)
WillChangeRecord 事件會在 Recordset變更中的一或多個記錄 (資料列) 之前呼叫。 RecordChangeComplete 事件會在一或多個記錄變更之後呼叫。
語法
WillChangeRecord adReason, cRecords, adStatus, pRecordset
RecordChangeCompleteadReason, cRecords, pError, adStatus, pRecordset
參數
adReason
EventReasonEnum 值,指定此事件的原因。 其值可以是 adRsnAddNew、adRsnDelete、adRsnUpdate、adRsnUndoUpdate、adRsnUndoAddNew、adRsnUndoDelete 或 adRsnFirstChange。
cRecords
Long 值,表示變更 (受影響) 的記錄數目。
pError
Error 物件。 該物件會描述如果 adStatus 值為 adStatusErrorsOccurred 時所發生的錯誤;否則不會設定。
adStatus
EventStatusEnum 狀態值。
呼叫 WillChangeRecord 時,如果造成事件的作業成功,此參數會設定為 adStatusOK。 如果此事件無法要求解除擱置的作業,便會設定為 adStatusCantDeny。
呼叫 RecordChangeComplete 時,如果造成事件的作業成功,此參數會設定為 adStatusOK,如果作業失敗,則會設定為 adStatusErrorsOccurred。
在 WillChangeRecord 傳回之前,請將此參數設定為 adStatusCancel 以要求取消會導致此事件的作業,或將此參數設定為 adStatusUnwantedEvent 以防止後續通知。
在 RecordChangeComplete 傳回之前,請將此參數設定為 adStatusUnwantedEvent 以防止後續的通知。
pRecordset
Recordset 物件。 發生此事件的 Recordset。
備註
WillChangeRecord 或 RecordChangeComplete 事件可能會因為下列 Recordset 作業而對資料列中的第一個變更欄位發生:Update、Delete、CancelUpdate、AddNew、UpdateBatch 和 CancelBatch。 Recordset CursorType 的值會決定哪些作業導致事件發生。
在WillChangeRecord事件期間,Recordset Filter 屬性會設定為adFilterAffectedRecords。 處理事件時,您無法變更此屬性。
您必須針對每個可能的 adReason 值將 adStatus 參數設定為 adStatusUnwantedEvent,才能針對包含 adReason 參數的任何事件完全停止事件通知。