未処理のバッチ更新をすべてディスクに書き込みます。
recordset.UpdateBatch AffectRecords
UpdateBatch メソッドの構文には、次の指定項目があります。
指定項目 |
説明 |
recordset |
開いている Recordset オブジェクトを表すオブジェクト変数です。 |
AffectRecords |
(省略可能) UpdateBatch メソッドの作用を受けるレコード数を決める AffectEnum 値です。次の定数のうちの 1 つを指定できます。 |
adAffectCurrent、1 セ カレント レコードの未処理の変更だけを書き込みます。 adAffectGroup、2 セ 現在の Filter プロパティの設定を満たすレコードの未処理の更新を書き込みます。このオプションを使用するには、有効な定義済み定数のうちの 1 つを Filter プロパティに設定する必要があります。 adAffectAll、3 (デフォルト) セ 現在の Filter プロパティの設定により隠されているものも含む、Recordset オブジェクト内のすべてのレコードの未処理の更新を書き込みます。 |
UpdateBatch は、バッチ更新モードにおいて Recordset オブジェクトを変更するときに、Recordset オブジェクトに加えられたすべての変更をデータ元のデータベースに転送するために使います。
Recordset オブジェクトがバッチ更新をサポートしている場合は、1 つ以上のレコードに加えられた変更をローカルに蓄積しておいてから、UpdateBatch メソッドを呼び出すことができます。カレント レコードの編集中、または新しいレコードの追加中に UpdateBatch を呼び出した場合には、ADO は自動的に Update メソッドを呼び出して未処理の変更をカレント レコードに保存してから、変更をプロバイダに一括転送します。
注意 バッチ更新はキーセット カーソルか静的カーソルのどちらかでのみ行ってください。
元になっているデータと競合するために変更の転送ができない場合 (たとえば別のユーザーが既にレコードを削除している場合など)、プロバイダは Errors コレクションに警告を返しますが、プログラムの実行を中断することはありません。ランタイム エラーは、要求されたレコードすべてが競合を起こした場合にだけ起こります。競合を起こしたレコードを探すには、Filter プロパティ (adFilterAffectedRecords) および Status プロパティを使います。
未処理のバッチ更新をすべてキャンセルするには、CancelBatch メソッドを使います。