AddNew メソッドを使用して、テーブル型またはダイナセット型の Recordset オブジェクトに新しいレコードを追加できます。
テーブルタイプまたはダイナセットタイプの Recordset オブジェクトにレコードを追加するには
AddNew メソッドを使用して、編集可能なレコードを作成します。
レコードの各フィールドに値を割り当てます。
Update メソッドを使用して、新しいレコードを保存します。
次のコードは、テーブル タイプの Shippers という名前の Recordset にレコードを追加します。
Dim dbsNorthwind As DAO.Database
Dim rstShippers As DAO.Recordset
Set dbsNorthwind = CurrentDb
Set rstShippers = dbsNorthwind.OpenRecordset("Shippers")
rstShippers.AddNew
rstShippers!CompanyName = "Global Parcel Service"
.
. ' Set remaining fields.
.
rstShippers.Update
AddNew メソッドを使用するとき、Access データベース エンジンは新しい空のレコードを準備し、それをカレント レコードにします。 Update メソッドを使用して新しいレコードを保存すると、AddNew メソッドを使用する前にカレント レコードであったレコードが再びカレント レコードになります。
新しいレコードの Recordset 内での位置は、レコードを追加した Recordset オブジェクトがダイナセット タイプとテーブル タイプのどちらであるかによって異なります。 ダイナセット タイプの Recordset にレコードを追加する場合、Recordset の並べ替え方法に関係なく、新しいレコードの位置は Recordset の終端になります。 正しく並べ替えられた位置に新しいレコードが確実に配置されるようにするには、 Requery メソッドを使用するか、または Recordset オブジェクトを再作成します。
テーブル タイプのレコードセットにレコードを追加する場合、レコードの位置は現在のインデックスに応じた位置、またはその時点でインデックスが存在しない場合はテーブルの終端になります。 Access データベース エンジンでは、複数のユーザーが同時にテーブルにレコードを作成できるため、 レコードが Recordset の末尾に表示されない可能性があります。 追加したばかりのレコードの移動には、必ず MoveLast メソッドではなく LastModified プロパティを使用してください。
注:
AddNew メソッドを使用して新しいレコードを追加した後、Update メソッドを実行する前に別のレコードに移動したり Recordset オブジェクトを閉じたりすると、変更内容は失われ、警告も表示されません。 たとえば、前の例で Update メソッドを省略すると、Shippers テーブルへの変更は行われないという結果になります。
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。