EditMode プロパティ

現在のレコードの編集状態を示します。

戻り値

EditModeEnum 値を返します。

注釈

ADO を使用すると、現在のレコードに関連付けられている編集バッファーが保持されます。 このプロパティは、このバッファーが変更されたかどうか、または新しいレコードが作成されたかどうかを示しています。 現在のレコードの編集状態を判断するには、EditMode プロパティを使います。 編集プロセスが中断された場合に保留中の変更をテストして、Update メソッドまたは CancelUpdate メソッドのどちらを使用する必要があるかを判断できます。

"即時更新モード" では、Update メソッドの呼び出しが成功した後で、EditMode プロパティが adEditNone にリセットされます。 Delete の呼び出しでデータ ソース内のレコードが正常に削除されないと (参照整合性違反などのため)、Recordset は編集モード (EditMode = adEditInProgress) のままになります。 したがって、現在のレコードから移動する前に CancelUpdate を呼び出す必要があります ( たとえば、MoveNextRecordsetClose など)。

"バッチ更新モード" (プロバイダーが複数の変更をキャッシュし、UpdateBatch メソッドが呼び出された場合にのみ基になるデータ ソースに書き込む) では、EditMode プロパティの値は、最初の操作が実行されたときに変更され、Update メソッドの呼び出しではリセットされません。 以降の操作では、異なる操作が実行された場合でも、EditMode プロパティの値は変更されません。 たとえば、1 番目の操作が新しいレコードの追加で、2 番目が既存レコードの変更である場合、EditMode のプロパティは adEditAdd のままになります。 EditMode プロパティは、UpdateBatch の呼び出し後まで adEditNone にリセットされません。 実行された操作を確認するには、変更が保留中のレコードのみが表示されるように Filter プロパティを adFilterPending に設定し、各レコードの Status プロパティを調べて、データに対して行われた変更を確認します。

注意

EditMode は、現在のレコードがある場合にのみ、有効な値を返すことができます。 EditMode は、BOF または EOF が true である場合、または現在のレコードが削除されている場合にのみ、エラーを返します。

適用対象

Recordset オブジェクト (ADO)

参照

CursorType、LockType、EditMode プロパティの例 (VB)
CursorType、LockType、EditMode プロパティの例 (VC++)
AddNew メソッド (ADO)
Delete メソッド (ADO Recordset)
CancelUpdate メソッド (ADO)
Update メソッド