Delete メソッド

開いている Recordset オブジェクトのカレント レコードを削除します。または、コレクションからオブジェクトを削除します。

構文

Recordset オブジェクトの場合:

recordset.Delete AffectRecords

Recordset オブジェクトの Delete メソッドの構文には、次の指定項目があります。

指定項目

説明

recordset

開いている Recordset オブジェクトを表すオブジェクト変数です。

AffectRecords

(省略可能) Delete メソッドにより削除されるレコード数を決める AffectEnum 値です。次の定数のうちの 1 つを指定できます。

adAffectCurrent、1 (デフォルト) カレント レコードだけを削除します。

adAffectGroup、2 現在の Filter プロパティの設定を満たすレコードを削除します。このオプションを使用するには、有効な定義済み定数のうちの 1 つを Filter プロパティに設定する必要があります。

コレクションの場合:

collection Delete Index

プレースホルダ collection は、削除するオブジェクトのあるコレクションを表します。引数 Index は、削除するオブジェクトの名前を表す文字列型 (String) です。

解説

Delete メソッドは、Recordset オブジェクト内のカレント レコードやレコードの集合を削除したり、あるいはコレクション内のオブジェクトの 1 つを削除したりするために使います。

Recordset

Delete メソッドを実行すると、Recordset オブジェクト内のカレント レコードまたはレコードの集合に、削除されたことを示すマークが付けられます。Recordset オブジェクトでレコードの削除が禁止されている場合は、エラーになります。即時更新モードの場合は、データベース内で直ちに削除処理が行われます。即時更新モードでない場合には、キャッシュから削除されたことを示すマークがレコードに付けられ、実際の削除処理は UpdateBatch メソッドを呼び出したときに行われます。削除されたレコードを調べるには Filter プロパティを使います。

削除したレコードのフィールド値を取得しようとするとエラーになります。カレント レコードは、削除した後に別のレコードに移動しないかぎり、カレント レコードのままになっています。削除したレコードから別のレコードに移動してしまうと、再びそのレコードにアクセスすることはできなくなります。

トランザクション内で削除処理がネストしている場合、RollbackTrans メソッドを使うと、削除されたレコードを復元することができます。バッチ更新モードの場合は、CancelBatch メソッドを使って、1 つまたは複数の未処理の削除をキャンセルすることができます。

元になっているデータと競合するためにレコードの削除ができない場合 (たとえば別のユーザーが既にレコードを削除している場合など)、プロバイダは Errors コレクションに警告を返しますが、プログラムの実行を中断することはありません。ランタイム エラーは、要求されたレコードすべてが競合を起こした場合にだけ起こります。競合を起こしたレコードを探すには、Filter プロパティ (adFilterAffectedRecords) および Status プロパティを使います。

Collection

コレクションで Delete メソッドを使うと、コレクション内のオブジェクトの 1 つを削除できます。このメソッドは、Command オブジェクトの Parameters コレクションでのみ有効です。Delete メソッドを呼び出すときは、Parameter オブジェクトの Name プロパティを指定する必要があります。オブジェクト変数は有効な引数として指定できません。

対象

ParametersRecordset

関連項目

AppendClear