Delete

(PWS4 IIS4 IIS5)
Delete — カレント レコードまたはレコードのグループを削除します。

構文

recordset.Delete AffectRecords

パラメータ

AffectRecords
Delete メソッドで操作するレコード数を決める AffectEnum 値を指定します。既定値は adAffectCurrent です。

戻り値

値を返しません。

説明

Delete メソッドを使うと、Recordset オブジェクトのカレントレコードまたはレコードのグループは削除の対象としてマークされます。レコードを削除できない Recordset オブジェクトの場合はエラーが発生します。即時更新モードでは、削除は直ちにデータベースに反映されます。レコードの削除に失敗した場合 (データベースの整合性違反などのため)、レコードは Update の呼び出し後も編集モードのままになります。そのため、カレントレコードから移動する (たとえば、Close、Move、または NextRecordset を使用する) 前に、CancelUpdate で更新をキャンセルする必要があります。

バッチ更新モードでは、キャッシュ内の削除されるレコードにマークされますが、実際の削除は UpdateBatch メソッドが呼び出されるまで行われません。(削除されたレコードを参照するには、Filter プロパティを使用します。)

削除されたレコードからフィールド値を取得しようとすると、エラーが発生します。カレントレコードを削除した後は、別のレコードに移動するまで、削除されたレコードがカレントレコードになります。削除されたレコードから移動した後は、そのレコードにアクセスできなくなります。

トランザクションで削除レコードをネストしている場合、RollbackTrans メソッドを使って削除レコードを復活することができます。バッチ更新モードでは、CancelBatch を使って実行されていない削除をキャンセルすることができます。

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

Unique Table ダイナミック プロパティが設定されており、Recordset が複数のテーブルに対する JOIN 操作の実行結果である場合、Delete メソッドは、Unique Table プロパティで指定されたテーブルからのみ行を削除できます。