まず、入力したデータを登録するプログラムコードを記述する。記述場所は図4右側の下記の記述箇所、記述するコードは、リスト1の「入力したデータを登録するコード」だ。
Private Sub 登録ボタン_Click()
End Sub
Private Sub 登録ボタン_Click() Dim myRecordset As Recordset ≪1≫ Set myRecordset = CurrentDb.OpenRecordset("select * from 顧客管理テーブル") ≪2≫ myRecordset.AddNew ≪3≫ myRecordset("氏名") = 氏名テキストボックス ≪4≫ myRecordset("性別") = 性別コンボボックス ≪5≫ myRecordset("年齢") = 年齢テキストボックス ≪6≫ myRecordset("郵便番号") = 郵便番号テキストボックス ≪7≫ myRecordset("住所") = 住所テキストボックス ≪8≫ myRecordset("電話番号") = 電話テキストボックス ≪9≫ myRecordset.Update ≪10≫ Me.Recalc ≪11≫ myRecordset.Close ≪12≫ Set myRecordset = Nothing ≪12≫ End Sub
コードの意味を解説しよう。
まず、Recordsetを扱うオブジェクト変数「myRecordset」を宣言する(1)。
現在開いているデータベースを「OpenRecordsetメソッド」で開く。OpenRecordsetの引数には「SQL」文を指定する。ここでは、下記のように記述して、「顧客管理テーブル」から全てのレコードを選択するよう指定する(2)。
select * from 顧客管理テーブル
次に「AddNewメソッド」で新しいレコードを挿入する(3)。
「氏名」のフィールドに「氏名テキストボックス」の値を(4)、「性別」のフィールドには「性別コンボボックス」から選択した値を(5)、「年齢」のフィールドには「年齢テキストボックス」の値を(6)、「郵便番号」のフィールドには、「郵便番号テキストボックス」の値を(7)、「住所」のフィールドには「住所テキストボックス」の値を(8)、「電話番号」のフィールドには「電話テキストボックス」の値を(9)指定する。
その後「Updateメソッド」で、レコードをテーブルに保存する(10)。
「Me.Recalcメソッド」で、フォームの全てのコントロールを更新する(11)。この記述がないと、「顧客管理テーブル」にはデータが追加されるが、「リストボックス」には反映されないので注意してほしい。「Me」というのは「自分自身」ということで、「今開いている、このフォーム」を指す。「Me」は省略もできる。
最後に、レコードを閉じて全ての関連付けから解放する(12)。
このフォームを実行するには、「VBE」メニューの一番左にある「Access」のアイコンをクリックし、「データ入力フォーム」のデザイン画面を表示する。そして、左の「ナビゲーションウインドウ」内で「フォーム」を表示し(図5参照)、「フォーム」をクリックして、表示されるフォームの項目名から「データ入力フォーム」をダブルクリックする。そして、フォーム上からデータを入力し、「登録」ボタンをクリックする。
すると、図7のように「リストボックス」にデータが追加され、「顧客管理テーブル」にもデータが追加される。
「OpenRecordsetメソッド」について
Accessでフォームからデータを追加し、Excelのシートにエクスポートする
「SQL」について
連載第3回「Accessを使うなら最低限知っておきたいSQL文を使ったさまざまな種類のクエリ操作の基本」
Access SQL を使用してレコードを取得する方法
Copyright © ITmedia, Inc. All Rights Reserved.