Delete メソッド (ADO Recordset)

現在のレコードまたはレコードのグループを削除します。

構文

  
recordset.Delete AffectRecords  

パラメーター

AffectRecords
どれだけのレコードに Delete メソッドが影響を及ぼすかを決定する AffectEnum 値。 既定値は adAffectCurrent です。

注意

adAffectAlladAffectAllChaptersDelete に対して有効な引数ではありません。

注釈

Delete メソッドを使用すると、Recordset オブジェクト内の現在のレコードまたはレコードのグループが削除対象としてマークされます。 Recordset オブジェクトでレコードの削除が許可されていない場合は、エラーが発生します。 即時更新モードのとき、削除がデータベースですぐに行われます。 レコードを正常に削除できない場合 (データベースの整合性違反などのため)、レコードは Update の呼び出し後も編集モードのままです。 つまり、現在のレコードから移動する (たとえば CloseMoveNextRecordset など) 前に、更新を CancelUpdate で取り消す必要があります。

バッチ更新モードのとき、レコードはキャッシュからの削除としてマークされ、UpdateBatch メソッドを呼び出すと実際の削除が行われます。 Filter プロパティを使用して、削除されたレコードを表示します。

フィールド値を削除されたレコードから取得すると、エラーが発生します。 現在のレコードを削除した後、削除されたレコードは、あなたが別のレコードに移動するまで、最新のままです。 削除されたレコードから一旦離れると、アクセスできなくなります。

トランザクションで削除を入れ子にした場合は、削除されたレコードを RollbackTrans メソッドで回復できます。 バッチ更新モードのときは、保留中の削除や保留中の削除のグループを CancelBatch メソッドで取り消すことができます。

基になるデータとの競合 (たとえば、レコードが別のユーザーによって既に削除されている) が原因でレコードを削除しようとして失敗した場合、プロバイダーは Errors コレクションに警告を返しますが、プログラムの実行は停止しません。 実行時エラーが発生するのは、要求されたすべてのレコードで競合がある場合だけです。

Unique Table 動的プロパティが設定されて、Recordset が複数のテーブルに対して JOIN 操作を実行した結果である場合、Delete メソッドで削除されるのは Unique Table プロパティで指定されたテーブルの行だけです。

適用対象

Recordset オブジェクト (ADO)

参照

Delete メソッドの例 (VB)
Delete メソッドの例 (VBScript)
Delete メソッドの例 (VC++)
Delete メソッド (ADO Fields コレクション)
Delete メソッド (ADO Parameters コレクション)
DeleteRecord メソッド (ADO)