検索
連載

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

Accessを通じて、初心者がリレーショナルデータベースやSQLの基本を学び、データベースを使った簡単なシステムの作り方を習得する本連載。今回は、VBEの起動とデータ入力用フォームの作成、VBAを使った入力用コードやデータの検証処理を記述する方法を解説する。

Share
Tweet
LINE
Hatena

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.

ページトップに戻る