WillChangeRecord 和 RecordChangeComplete 事件 (ADO)
WillChangeRecord 事件在 记录集 更改前调用一个或多个记录(行)。 RecordChangeComplete 事件在一个或多个记录更改后调用。
语法
WillChangeRecord adReason, cRecords, adStatus, pRecordset
RecordChangeCompletedReason, cRecords, pError, adStatus, pRecordset
参数
adReason
EventReasonEnum 值,该值指定此事件的原因。 其值 可以是 adRsnAddNew、adRsnDelete、adRsnUpdate、adRsnUndoUp、adRsnUndoAddNew、adRsnUndoDelete或 adRsnFirstChange。
cRecords
一个 Long 值,该值指示更改的记录数(受影响的)。
pError
错误 对象。 它描述 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。 RecordsetCursorType 的值 确定导致事件发生的操作。
在 WillChangeRecord 事件期间,RecordsetFilter 属性设置为 adFilterAffectedRecords。 处理事件时无法更改此属性。
必须为每个可能的 adReason 值将 adStatus 参数设置为 adStatusUnwantedEvent,才能针对包含 adReason 参数的任何事件完全停止事件通知。