連載
» 2015年09月01日 05時00分 公開

Access VBAで学ぶ初心者のためのデータベース/SQL超入門(4):VBAで正規表現や関数を使った入力チェックを行い、Accessに新規レコードを追加、保存するには (3/5)

[薬師寺国安,PROJECT KySS]

VBAで基本のコードを記述する

入力したデータを登録するプログラムコード

 まず、入力したデータを登録するプログラムコードを記述する。記述場所は図4右側の下記の記述箇所、記述するコードは、リスト1の「入力したデータを登録するコード」だ。

図4(再掲)

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
リスト1 入力したデータを登録するコード

コード解説

 コードの意味を解説しよう。

 まず、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のように「リストボックス」にデータが追加され、「顧客管理テーブル」にもデータが追加される。

図7 「リストボックス」にデータが追加され、「顧客管理テーブル」にもデータが追加される

Copyright © ITmedia, Inc. All Rights Reserved.

編集部からのお知らせ

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。