UpdateBatch メソッド (ADO)
適用先: Access 2013、Office 2013
保留中の一括更新をすべてディスクに書き込みます。
構文
recordset。UpdateBatchAffectRecords
パラメーター
パラメーター | 説明 |
---|---|
AffectRecords | 省略可能です。 UpdateBatch メソッドで処理するレコードの数を示す AffectEnum 値を指定します。 |
注釈
Recordset オブジェクトを一括更新モードで変更している場合に UpdateBatch メソッドを使用すると、 Recordset オブジェクトに加えられた変更を基になるデータベースに転送できます。
Recordset オブジェクトが一括更新をサポートしている場合は、 UpdateBatch メソッドを呼び出すまでの間、1 つまたは複数のレコードへの複数の変更をローカルにキャッシュしておくことができます。 カレント レコードの編集中、または新しいレコードの追加中に UpdateBatch メソッドを呼び出すと、ADO によって自動的に Update メソッドが呼び出されてカレント レコードへの保留中の変更が保存されてから、変更内容がまとめてプロバイダーに転送されます。 一括更新は、キーセットまたは静的カーソルのみで使用してください。
注:
[!メモ] パラメーターの値として adAffectGroup を指定すると、現在の Recordset 内に表示可能なレコードがなかった場合 (一致するレコードのないフィルターがかかっているなど) にはエラーが発生します。
基になるデータとの競合が原因で一部またはすべてのレコードの変更の転送に失敗した場合 (たとえば、レコードが他のユーザーによって既に削除されていた場合)、プロバイダーから Errors コレクションに警告が返され、実行時エラーが発生します。 Filter プロパティ (adFilterAffectedRecords) と Status プロパティを使用すると、競合のあるレコードを突き止めることができます。
保留になっているすべての一括更新を取り消すには、CancelBatch メソッドを使用します。
動的プロパティの Unique Table と Update Resync が設定されていて、 Recordset が複数のテーブルに対して JOIN 操作を実行した結果になっている場合は、 UpdateBatch メソッドの実行の後に、 Update Resync プロパティの設定に応じて暗黙的に Resync メソッドが実行されます。
個々の一括更新がデータ ソースに対して実行される順序は、必ずしもそれらがローカル Recordset に実行された順序と同じになるわけではありません。 更新の順序は、プロバイダーに依存します。 挿入または更新に対する外部キー制約など、相互に関連のある更新をコーディングする場合は、このことを考慮してください。