Accessのコントロールに値集合タイプ/ソース、SQLでデータを表示する基本Access VBAで学ぶ初心者のためのデータベース/SQL超入門(8)(1/4 ページ)

Accessを通じて、初心者がリレーショナルデータベースやSQLの基本を学び、データベースを使った簡単なシステムの作り方を習得する本連載。今回は、業務アプリ作成のためのAccess基本フォームの基礎と共に、値集合タイプ/ソース、SQLで各コントロールにデータを表示する方法を解説する。

» 2016年02月12日 05時00分 公開
[薬師寺国安PROJECT KySS]
Access VBAで学ぶ初心者のためのデータベース/SQL超入門

連載目次

連載の目的と前回のおさらい

 本連載はMicrosoft Access(マイクロソフトアクセス 以下、Access)を使って、リレーショナルデータベース(RDB)やSQLの基本を学び、データベースを使った簡単なシステムの作り方を習得するものだ。

 前回までは、データベースやSQL文を使い、「顧客管理のための業務アプリケーション」を作成するまでを解説した。

 今回は、Accessのフォームで使用する「テキストボックス」「リストボックス」「コンボボックス」「タブコントロール」の基礎と使い方をあらためて説明する。これらのコントロールに、顧客管理データベースや顧客管理データベースから指定したフィールドを表示させるまでを実践してみよう。

「リストボックス」に、顧客管理データベースにある「氏名」を表示する

 まずは「リストボックス」の使い方から解説する。

 ここでは、これまでに作成した「顧客管理データベース」を使い、フォーム上に配置した「リストボックス」へ、VBAで「氏名のみ」を表示させる機能を設ける。なお、フォームの配置時に表示されるフォームウィザードは使わずに進めていく。ウィザードが開いたら、そのまま閉じて大丈夫だ(以下同)。

 Accessメニューの「作成」→「フォームデザイン」と選択する。今回はいろいろなコントロールを配置してデータ表示の例を検証するので、フォームのサイズはやや大きめにしておいてほしい。

 「リストボックス」コントロールを配置する(図1)。プロパティシートから「書式」タブを選び、立体表示は「浮き出し」、フォント名は「Meiryo UI」、フォントサイズは「14」、フォント太さは「中太」にしておく。続いてプロパティシートの「その他」タブから、リストボックスの名前を「氏名リストボックス」と指定する。

photo 図1 フォーム上に「リストボックス(氏名リストボックス)」を配置した

 続いて、プロパティシート「イベント」タブの右端にあるドロップダウン「▼」アイコンをクリックすると表れる、[イベント プロシージャ]を選択する。その横にある「…」アイコンをクリックすると、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:氏名リストボックスに「氏名」を表示するコード

 リスト1は、値集合タイプに「Table/Query」を指定し、値集合ソースを「顧客管理テーブル」にある「氏名」フィールドの値に設定するという記述だ。

 開いているVBEのメニューからファイル→「顧客管理の上書き保存」を選択すると、作成しているフォームの保存ダイアログボックスが表示される。ここでは、「フォームコントロールのいろいろ」という名前を指定する。

 ナビゲーションウィンドウから「フォーム」を表示させ、「フォームコントロールのいろいろ」をタブルクリックで選ぶと、リストボックス内に「氏名」のリストが表示される(図2)。

photo 図2 リストボックス内に「氏名」が表示された
       1|2|3|4 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

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

メールマガジン登録

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