2.8 レコードセットの操作/追加
レコードセットオブジェクト内へ新しいレコードを追加する方法です。この方法は、SQLのINSERT文を使わない追加の方法です。

レコードセットオブジェクト内へ新しいレコードを追加するときは、レコードセットオブジェクトのAddNewメソッドとUpdateメソッドを使います。
EditとUpdateの使用例
レコードを追加するときは、まずAddNewメソッドを実行します。実行すると、レコードセット内に新しいレコードが仮で1件作成されるので、その仮レコードに対して編集を行います。

ただし、この時点ではあくまでのレコードなので、実際の追加(レコードの追加)は行われていません。編集した内容を反映するときは、Updateメソッドを実行します。Updateメソッドは、追加した仮レコードの保存と考えれば良いでしょう。

例では、「住所録テーブル」というテーブルへ、新しいレコードを追加しています。

Sub prcAddNewUpdate2000()

    'Access VBA Tips
    '2.8 レコードセットの操作/追加
    'Access2000以降での手順

    Dim daoDB As DAO.Database
    Dim daoRS As DAO.Recordset

    'データベースのオープン(データベースオブジェクトの作成)
    Set daoDB = CurrentDb

    'テーブルのオープン(レコードセットの作成)
    Set daoRS = daoDB.OpenRecordset("住所録テーブル", dbOpenDynaset)

    daoRS.AddNew
    daoRS!漢字氏名 ="鬼瓦権蔵"
    daoRS!性別 = 1
    daoRS!関係 = 1
    daoRS.Update

    'テーブルのクローズ
    daoRS.Close

    'データベースのクローズ
    daoDB.Close

End Sub
 ※Access2000以降の場合。ただし、DAOを使う場合は参照設定が必要です。



Sub prcAddNewUpdate97()

    'Access VBA Tips
    '2.8 レコードセットの操作/追加
    'Access97までの手順

    Dim daoDB As Database
    Dim daoRS As Recordset

    'データベースのオープン(データベースオブジェクトの作成)
    Set daoDB = DBEngine.Workspaces(0).Databases(0)

    'テーブルのオープン(レコードセットの作成)
    Set daoRS = daoDB.OpenRecordset("住所録テーブル", DB_OPEN_DYNASET)

    daoRS.AddNew
    daoRS!漢字氏名 ="鬼瓦権蔵"
    daoRS!性別 = 1
    daoRS!関係 = 1
    daoRS.Update

    'テーブルのクローズ
    daoRS.Close

    'データベースのクローズ
    daoDB.Close

End Sub
 ※Access97までの場合。
Copyright(C) 1999-2006 結城圭介。 All rights reserved