AddNew メソッド (ADO)

適用先: Access 2013、Office 2013

更新可能な Recordset オブジェクトの新しいレコードを作成します。

構文

recordset。AddNew FieldList, Values

パラメーター

パラメーター 説明
recordset Recordset オブジェクトです。
FieldList 省略可能です。 新しいレコード内の単一フィールドの名前であるか、複数フィールドの名前または順序の配列です。
省略可能です。 1 つの値、または新しいレコード内のフィールドの値の配列。 Fieldlist が配列の場合、Values も同じ数のメンバーを持つ配列である必要があります。それ以外の場合は、エラーが発生します。 また、一方の配列におけるフィールド名の順序と、もう一方の配列におけるフィールド値の順序は、一致している必要があります。

注釈

AddNew メソッドは、新しいレコードの作成と初期化に使用します。 現在の Recordset オブジェクトにレコードを追加できるかどうかを確認するには、 Supports メソッドに adAddNew ( CursorOptionEnum 値) を指定して使用します。

AddNew メソッドを呼び出した後は、新しいレコードがカレント レコードになり、 Update メソッドを呼び出した後もカレント レコードのままになります。 新しいレコードは Recordset の最後に追加されるので、Update に続いて MoveNext を呼び出すと、 Recordset の末尾を超えて移動し、 EOF が True になります。 Recordset オブジェクトがブックマークをサポートしていない場合は、別のレコードに移動すると、新しいレコードにアクセスできなくなることがあります。 カーソルの種類によっては、新規レコードにアクセスするために、 Requery メソッドを呼び出すことが必要になる場合があります。

カレント レコードの編集中または新規レコードの追加中に AddNew メソッドを呼び出すと、ADO は Update メソッドを呼び出してすべての変更を保存した後、新しいレコードを作成します。

AddNew メソッドの動作は、Recordset オブジェクトの更新モード、および Fieldlist 引数と Values 引数を渡すかどうかによって異なります。

即時更新モード (Update メソッドを呼び出すと、プロバイダーが基になるデータ ソースに変更を書き込む) では、引数を指定せずに AddNew メソッドを呼び出すと、EditMode プロパティが adEditAdd (EditModeEnum 値) に設定されます。 The provider caches any field value changes locally. Calling the Update method posts the new record to the database and resets the EditMode property to adEditNone (an EditModeEnum value). Fieldlist 引数と Values 引数を渡すと、ADO は新しいレコードをデータベースに直ちに投稿します (Update 呼び出しは必要ありません)。EditMode プロパティの値は変更されません (adEditNone)。

バッチ更新モード (プロバイダーが複数の変更をキャッシュし、UpdateBatch メソッドを呼び出すときにのみ基になるデータ ソースに書き込む) では、引数を指定せずに AddNew メソッドを呼び出すと、EditMode プロパティが adEditAdd に設定されます。 The provider caches any field value changes locally. Calling the Update method adds the new record to the current Recordset and resets the EditMode property to adEditNone, but the provider does not post the changes to the underlying database until you call the UpdateBatch method. 引数 FieldlistValues を渡すと、ADO はキャッシュ内のストレージ用に新しいレコードをプロバイダーに送信します。新しいレコードを基になるデータベースにポストするには、UpdateBatch メソッドを呼び出す必要があります。