WillChangeRecord 和 RecordChangeComplete 事件 (ADO)

适用于:Access 2013、Office 2013

WillChangeRecord 事件在 Recordset 中的一个或多个记录(行)发生更改之前调用。 RecordChangeComplete 事件在一个或多个记录发生更改之后调用。

语法

WillChangeRecordadReasoncRecordsadStatuspRecordset

RecordChangeCompleteadReasoncRecordspErroradStatuspRecordset

参数

参数 说明
adReason 指定此事件原因的 EventReasonEnum 值。 其值可以是 adRsnAddNewadRsnDeleteadRsnUpdateadRsnUndoUpdateadRsnUndoAddNewadRsnUndoDeleteadRsnFirstChange
cRecords 长整型 值,指定记录更改(受影响)的数量。
pError Error 对象。 如果 adStatus 的值为 adStatusErrorsOccurred ,则此参数描述所发生的错误,否则不设置此参数。
adStatus EventStatusEnum。 调用 WillChangeRecord 时,如果导致事件的操作成功,此参数将设置为 adStatusOK 。 如果此事件无法请求取消挂起的操作,则它设置为 adStatusCantDeny

调用 RecordChangeComplete 时,如果导致事件的操作成功,则该参数设置为 adStatusOK ;如果导致事件的操作失败,则该参数设置为 adStatusErrorsOccurred

WillChangeRecord 返回之前,将该参数设置为 adStatusCancel 可以请求取消导致该事件的操作,将该参数设置为 adStatusUnwantedEvent 可以阻止随后进行通知。

RecordChangeComplete 返回之前,将该参数设置为 adStatusUnwantedEvent 可以阻止随后进行通知。
pRecordset Recordset 对象。 发生此事件的 Recordset

备注

由于以下 Recordset 操作,行中第一个发生更改的字段可能会导致发生 WillChangeRecordRecordChangeComplete 事件: UpdateDeleteCancelUpdateAddNewUpdateBatchCancelBatchRecordsetCursorType 的值确定哪些操作导致事件发生。

WillChangeRecord 事件期间, RecordsetFilter 属性设置为 adFilterAffectedRecords 。 在处理事件的时候不能更改此属性。

对于每个可能的 adReason 值,必须将 adStatus 参数设置为 adStatusUnwantedEvent,以完全停止包含 adReason 参数的任何事件的事件通知。