WillChangeRecord 和 RecordChangeComplete 事件 (ADO)
适用于:Access 2013、Office 2013
WillChangeRecord 事件在 Recordset 中的一个或多个记录(行)发生更改之前调用。 RecordChangeComplete 事件在一个或多个记录发生更改之后调用。
语法
WillChangeRecordadReason, cRecords, adStatus, pRecordset
RecordChangeCompleteadReason、 cRecords、 pError、 adStatus、 pRecordset
参数
参数 | 说明 |
---|---|
adReason | 指定此事件原因的 EventReasonEnum 值。 其值可以是 adRsnAddNew 、 adRsnDelete 、 adRsnUpdate 、 adRsnUndoUpdate 、 adRsnUndoAddNew 、 adRsnUndoDelete 或 adRsnFirstChange 。 |
cRecords | 长整型 值,指定记录更改(受影响)的数量。 |
pError | Error 对象。 如果 adStatus 的值为 adStatusErrorsOccurred ,则此参数描述所发生的错误,否则不设置此参数。 |
adStatus |
EventStatusEnum。 调用 WillChangeRecord 时,如果导致事件的操作成功,此参数将设置为 adStatusOK 。 如果此事件无法请求取消挂起的操作,则它设置为 adStatusCantDeny 。 调用 RecordChangeComplete 时,如果导致事件的操作成功,则该参数设置为 adStatusOK ;如果导致事件的操作失败,则该参数设置为 adStatusErrorsOccurred 。 在 WillChangeRecord 返回之前,将该参数设置为 adStatusCancel 可以请求取消导致该事件的操作,将该参数设置为 adStatusUnwantedEvent 可以阻止随后进行通知。 在 RecordChangeComplete 返回之前,将该参数设置为 adStatusUnwantedEvent 可以阻止随后进行通知。 |
pRecordset | Recordset 对象。 发生此事件的 Recordset。 |
备注
由于以下 Recordset 操作,行中第一个发生更改的字段可能会导致发生 WillChangeRecord 或 RecordChangeComplete 事件: Update、Delete、CancelUpdate、AddNew、UpdateBatch 和 CancelBatch。 Recordset 的 CursorType 的值确定哪些操作导致事件发生。
在 WillChangeRecord 事件期间, Recordset 的 Filter 属性设置为 adFilterAffectedRecords 。 在处理事件的时候不能更改此属性。
对于每个可能的 adReason 值,必须将 adStatus 参数设置为 adStatusUnwantedEvent,以完全停止包含 adReason 参数的任何事件的事件通知。