次の方法で共有


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 TableUpdate Resync が設定されていて、 Recordset が複数のテーブルに対して JOIN 操作を実行した結果になっている場合は、 UpdateBatch メソッドの実行の後に、 Update Resync プロパティの設定に応じて暗黙的に Resync メソッドが実行されます。

個々の一括更新がデータ ソースに対して実行される順序は、必ずしもそれらがローカル Recordset に実行された順序と同じになるわけではありません。 更新の順序は、プロバイダーに依存します。 挿入または更新に対する外部キー制約など、相互に関連のある更新をコーディングする場合は、このことを考慮してください。