Delete メソッド (ADO Recordset)
適用先: Access 2013、Office 2013
カレント レコードまたはレコードのグループを削除します。
構文
recordset。AffectRecords の削除
パラメーター
パラメーター | 説明 |
---|---|
AffectRecords | Delete メソッドで操作するレコードの数を決める AffectEnum 値を指定します。 既定値は adAffectCurrent です。 |
注:
adAffectAll と adAffectAllChapters は、Delete では無効な引数です。
注釈
Delete メソッドを使用すると、 Recordset オブジェクト内のカレント レコードまたはレコードのグループは削除の対象としてマークされます。 レコードを削除できない Recordset オブジェクトの場合は、エラーが発生します。 即時更新モードでは、削除は直ちにデータベースに反映されます。 データベースの整合性違反などにより削除を実行できない場合、レコードは Update を呼び出した後も編集モードのままになります。 そのため、 Close、Move、NextRecordset などによりカレント レコードから移動する前に、 CancelUpdate を使用して更新を取り消す必要があります。
バッチ更新モードでは、キャッシュ内の削除されるレコードにマークはされますが、実際の削除は UpdateBatch メソッドを呼び出すまで行われません。 削除されたレコードを参照するには、 Filter プロパティを使用します。
削除されたレコードからフィールド値を取得すると、エラーが発生します。 カレント レコードを削除すると、別のレコードに移動するまで、削除されたレコードがカレント レコードのままになります。 削除されたレコードから移動した後は、そのレコードにアクセスできなくなります。
トランザクションで削除レコードをネストしている場合は、RollbackTrans メソッドを使用して、削除されたレコードを復元することができます。 バッチ更新モードの場合は、保留中の削除を CancelBatch メソッドで取り消すことができます。
基になるデータとの競合 (レコードが別のユーザーによって既に削除されているなど) が原因でレコードの削除が失敗した場合は、プロバイダーから Errors コレクションに警告が返されますが、プログラムの実行は停止されません。 実行時エラーが発生するのは、要求したすべてのレコードで競合が発生した場合のみです。
Unique Table ダイナミック プロパティが設定されていて、 Recordset が複数のテーブルに対して JOIN 操作を実行した結果である場合、 Delete メソッドは、 Unique Table プロパティで指定されたテーブルからのみ行を削除できます。