第 5 章: データの更新および永続化

適用先: Access 2013、Office 2013

これまでの章では、ADO を使用してデータ ソース内のデータにアクセスする方法、データ内を移動する方法、およびデータを編集する方法について説明しました。 ユーザーがデータを変更できるようにするアプリケーションを構築する場合、これらの変更を保存する方法を理解しておく必要があります。 Save メソッドを使用して Recordset の変更をファイルに保存することも、 Update メソッドまたは UpdateBatch メソッドを使用して、変更内容をデータ ソースに返送して保存することもできます。

これまでの章では、 Recordset の複数の行で変更を行いました。 ADO では、データ行の追加、削除、および変更に関連する 2 つの基本的な概念をサポートしています。

最初の概念は、 Recordset に対する変更が直ちに行われるわけではないということです。代わりに、内部 コピー バッファーに対して行われます。 If you decide you don't want the changes, the modifications in the copy buffer are discarded. If you decide to keep the changes, the changes in the copy buffer are applied to the Recordset.

2 つ目の考え方は、行の完了に対して作業を宣言するとすぐに変更がデータ ソースに反映されるか (つまり、 即時 モード) か、セットの作業を完了 (つまり バッチ モード) に宣言するまで、一連の行に対するすべての変更が収集されるということです。 The LockType property determines when the changes are made to the underlying data source. adLockOptimistic or adLockPessimistic specifies immediate mode, while adLockBatchOptimistic specifies batch mode. The CursorLocation property can affect which LockType settings are available. For instance, the adLockPessimistic setting is not supported if the CursorLocation property is set to adUseClient.

即時モードでは、 Update メソッドを呼び出すたびに、変更がデータ ソースに反映されます。 バッチ モードでは、 Update を呼び出すか、現在の行の位置が移動されるたびに、変更内容がコピー バッファーに保存されますが、データ ソースに変更を反映するのは UpdateBatch メソッドのみです。

この章では、次のトピックについて説明します。