Accessを通じて、初心者がリレーショナルデータベースやSQLの基本を学び、データベースを使った簡単なシステムの作り方を習得する本連載。今回は、業務アプリ作成のためのAccess基本フォームの基礎と共に、値集合タイプ/ソース、SQLで各コントロールにデータを表示する方法を解説する。
本連載はMicrosoft Access(マイクロソフトアクセス 以下、Access)を使って、リレーショナルデータベース(RDB)やSQLの基本を学び、データベースを使った簡単なシステムの作り方を習得するものだ。
前回までは、データベースやSQL文を使い、「顧客管理のための業務アプリケーション」を作成するまでを解説した。
今回は、Accessのフォームで使用する「テキストボックス」「リストボックス」「コンボボックス」「タブコントロール」の基礎と使い方をあらためて説明する。これらのコントロールに、顧客管理データベースや顧客管理データベースから指定したフィールドを表示させるまでを実践してみよう。
まずは「リストボックス」の使い方から解説する。
ここでは、これまでに作成した「顧客管理データベース」を使い、フォーム上に配置した「リストボックス」へ、VBAで「氏名のみ」を表示させる機能を設ける。なお、フォームの配置時に表示されるフォームウィザードは使わずに進めていく。ウィザードが開いたら、そのまま閉じて大丈夫だ(以下同)。
Accessメニューの「作成」→「フォームデザイン」と選択する。今回はいろいろなコントロールを配置してデータ表示の例を検証するので、フォームのサイズはやや大きめにしておいてほしい。
「リストボックス」コントロールを配置する(図1)。プロパティシートから「書式」タブを選び、立体表示は「浮き出し」、フォント名は「Meiryo UI」、フォントサイズは「14」、フォント太さは「中太」にしておく。続いてプロパティシートの「その他」タブから、リストボックスの名前を「氏名リストボックス」と指定する。
続いて、プロパティシート「イベント」タブの右端にあるドロップダウン「▼」アイコンをクリックすると表れる、[イベント プロシージャ]を選択する。その横にある「…」アイコンをクリックすると、VBEが起動する。
デフォルトで表示される、
Private Sub 氏名リストボックス_Click()
End Sub
は、後で使うのでそのままにしておく。新たに、以下の「Form_Loadイベントプロシージャ」を作成し、リスト1のようにコードを記述する。
Form_Loadイベントプロシージャの作成方法については、第6回「“SQL”文で登録されているデータをAccessを通じて編集し、変更をデータベースに反映させる方法」のワンポイント解説を参考にしてほしい。
Private Sub Form_Load() 氏名リストボックス.RowSourceType = "Table/Query" 氏名リストボックス.RowSource = "Select 氏名 From 顧客管理テーブル;" End Sub
リスト1は、値集合タイプに「Table/Query」を指定し、値集合ソースを「顧客管理テーブル」にある「氏名」フィールドの値に設定するという記述だ。
開いているVBEのメニューからファイル→「顧客管理の上書き保存」を選択すると、作成しているフォームの保存ダイアログボックスが表示される。ここでは、「フォームコントロールのいろいろ」という名前を指定する。
ナビゲーションウィンドウから「フォーム」を表示させ、「フォームコントロールのいろいろ」をタブルクリックで選ぶと、リストボックス内に「氏名」のリストが表示される(図2)。
Copyright © ITmedia, Inc. All Rights Reserved.