Access VBA DAOでレコードを追加する方法。

VBA のプログラムから、DAOを使ってレコードを追加してみましょう。

VBAから Access のテーブルにレコードを追加するには、いくつか方法があります。まずは Recordsetオブジェクトの AddNew メソッドを使う方法です。


【1】Accessのファイル「SampleDB020.mdb」を起動し、テーブル「T01Prefecture」を開きます。

access-vba-200.gif


【2】最後のレコードが、「47 沖縄県」になっていることを、確認しておいてください。

access-vba-196.gif

レコードを確認したらテーブルを閉じます。


【3】続いて VBE を起動し、標準モジュールの test6 を表示します。

access-vba-189.gif

*VBEは「Altキー」+「F11キー」で起動できます。


【4】「test6」に以下のように、Subプロシージャ addData() を追加します。


Sub addData(pCd As Integer, pName As String)
  Dim db As DAO.Database
  Set db = CurrentDb

  Dim rs As DAO.Recordset
  Set rs = db.OpenRecordset("T01Prefecture")

  rs.AddNew
    rs!PREF_CD = pCd
    rs!PREF_NAME = pName
  rs.Update

  rs.Close
  Set rs = Nothing
  db.Close
  Set db = Nothing
  
  Debug.Print "レコードを追加しました。"
  dispData
End Sub


access-vba-198.gif


プログラムの準備ができたら、早速実行してみましょう。

【5】イミディエイト ウィンドウから addData() を実行してください。

call addData(99, "ハワイ")

access-vba-191.gif

*PREF_CD は 1~47は既に使われているので、他の番号にしてください。


【6】追加のメッセージと、レコードが表示されました。

access-vba-199.gif


【7】イミディエイト ウィンドウをスクロールすると、新しいレコードが追加されていることが確認できます。

access-vba-193.gif


【8】テーブル「T01Prefecture」を開き、レコードが追加されていることを確認してください。

access-vba-194.gif


【9】addData()を使って、レコードを追加する練習をしてください。


【解説】

(1)イミディエイト ウィンドウから、addData() を引数を指定して呼び出しています。

call addData(99, "ハワイ")

1番目の引数は整数型なのでそのまま書きます。2番目の引数は文字列型なので、半角の「"」ダブルクォーテーションで囲みます。

Call ステートメントを使わない場合は、()カッコを付けないで書きます。
addData 99, "ハワイ"

*PREF_CD に重複する値を使うことはできません。


(2)整数型(Integer)と文字列型(String)の引数を、2つ受け取ります。

Sub addData(pCd As Integer, pName As String)


(3)実際にレコードを追加している部分です。

rs.AddNew
  rs!PREF_CD = pCd
  rs!PREF_NAME = pName
rs.Update

Recordsetオブジェクトに対して操作を行なっています。AddNew から Updatete までをセットで覚えてください。

rs.AddNew で新しいレコード(空)を作成して、rs.Update で保存します。Updateを忘れると、テーブルに反映されませんのでご注意ください。

引数として受け取った値を、新しいレコードのデータにしています。


(4)メッセージを表示している部分です。
Debug.Print "レコードを追加しました。"


(5)レコードを表示している部分です。
dispData

*引数の無い Subプロシージャ は Call を省略できます。

既にSubプロシージャ dispData() は作成済みなので、レコードを表示する複雑な機能が、たった1行で呼び出せます。これがSubプロシージャを定義するメリットです。


スポンサードリンク

スポンサードリンク






Access VBA 初心者入門講座 TOPへ