次の方法で共有


WillChangeRecord および RecordChangeComplete イベント (ADO)

WillChangeRecord イベントは、Recordset の 1 つ以上のレコード (行) が変更される前に呼び出されます。 RecordChangeComplete イベントは、1 つ以上のレコードが変更された後に呼び出されます。

構文

  
WillChangeRecord adReason, cRecords, adStatus, pRecordset  
RecordChangeCompleteadReason, cRecords, pError, adStatus, pRecordset  

パラメーター

adReason
このイベントの理由を指定する EventReasonEnum 値。 その値は、adRsnAddNewadRsnDeleteadRsnUpdateadRsnUndoUpdateadRsnUndoAddNewadRsnUndoDelete、または adRsnFirstChange のいずれかです。

cRecords
変更される (影響を受ける) レコードの数を示す Long 値。

pError
Error オブジェクト。 adStatus の値が adStatusErrorsOccurred の場合に発生したエラーの説明です。それ以外の場合は設定されません。

adStatus
EventStatusEnum の状態値。

WillChangeRecord が呼び出されると、イベントの原因となった操作が成功した場合にこのパラメーターは adStatusOK に設定されます。 このイベントが保留中の操作の取り消しを要求できない場合は、adStatusCantDeny に設定されます。

RecordChangeComplete が呼び出されると、イベントの原因となった操作が成功した場合はこのパラメーターが adStatusOK に設定され、操作が失敗した場合は adStatusErrorsOccurred に設定されます。

WillChangeRecord が戻る前に、このパラメーターを adStatusCancel に設定すると、このイベントの原因となった操作の取り消しが要求されます。あるいは、このパラメーターを adStatusUnwantedEvent に設定すると、以降の通知が行われなくなります。

RecordChangeComplete が戻る前に、このパラメーターを adStatusUnwantedEvent に設定すると、以降の通知が行われなくなります。

pRecordset
Recordset オブジェクト。 このイベントが発生した Recordset

解説

Recordset 操作の UpdateDeleteCancelUpdateAddNewUpdateBatchCancelBatch のため、行で最初に変更されたフィールドに対して WillChangeRecord または RecordChangeComplete イベントが発生することがあります。 Recordset CursorType の値によって、イベントが発生する原因となる操作が決まります。

WillChangeRecord イベント中に、Recordset Filter プロパティは adFilterAffectedRecords に設定されます。 イベントの処理中にこのプロパティを変更することはできません。

adReason パラメーターを含むイベントのイベント通知を完全に停止するには、可能な adReason 値ごとに adStatus パラメーターを adStatusUnwantedEvent に設定する必要があります。

参照

ADO イベント モデルの例 (VC++)
ADO イベント ハンドラーの概要