Delete メソッド (ADO Recordset)
現在のレコードまたはレコードのグループを削除します。
構文
recordset.Delete AffectRecords
パラメーター
AffectRecords
Delete メソッドが影響を受けるレコードの数を決定する AffectEnum 値です。 既定値は adAffectCurrent です。
手記
adAffectAll と adAffectAllChapters Delete をする有効な引数ではありません。
備考
Delete メソッドを使用すると、現在のレコードまたはレコードのグループが Recordset オブジェクトに削除対象としてマークされます。 Recordset オブジェクトでレコードの削除が許可されていない場合は、エラーが発生します。 即時更新モードの場合は、データベース内ですぐに削除が行われます。 レコードを正常に削除できない場合 (データベースの整合性違反など)、Updateの呼び出し後もレコードは編集モードのままです。 つまり、現在のレコードから移動する前に、CancelUpdate で更新を取り消す必要があります (たとえば、閉じる、の移動、NextRecordset を)。
バッチ更新モードの場合、レコードはキャッシュから削除対象としてマークされ、UpdateBatch メソッドを呼び出すと実際の削除が行われます。 Filter プロパティを使用して、削除されたレコードを表示します。
削除されたレコードからフィールド値を取得すると、エラーが発生します。 現在のレコードを削除した後、別のレコードに移動するまで、削除されたレコードは最新の状態のままになります。 削除されたレコードから離れると、アクセスできなくなります。
トランザクションで削除を入れ子にした場合は、RollbackTrans メソッドを使用して削除されたレコードを回復できます。 バッチ更新モードの場合は、CancelBatch メソッドを使用して、保留中の削除または保留中の削除のグループを取り消すことができます。
基になるデータとの競合が原因でレコードの削除が失敗した場合 (たとえば、レコードが別のユーザーによって既に削除されている場合)、プロバイダーは Errors コレクションに警告を返しますが、プログラムの実行は停止しません。 実行時エラーは、要求されたすべてのレコードに競合がある場合にのみ発生します。
Unique Table 動的プロパティが設定され、Recordset が複数のテーブルに対して JOIN 操作を実行した結果である場合、Delete メソッドは、Unique Table プロパティで指定されたテーブルの行のみを削除します。
適用対象
関連項目
Delete メソッドの使用例 (VB)
Delete メソッドの使用例 (VBScript)
Delete メソッドの使用例 (VC++)
Delete メソッド (ADO Fields コレクション)
Delete メソッド (ADO Parameters コレクション)
DeleteRecord メソッド (ADO)