続いて、選択した性別に該当するレコードをリストボックスに表示するための「コンボボックス」を配置しよう。
ここでは、フォーム上に「コンボボックス」と「リストボックス」を一つずつ作成する(図5)。
コンボボックスのラベルは、「性別」とする。プロパティシートより、書式は、フォント名に「Meiryo UI」、フォントサイズに「14」、フォント太さに「太字」とする。続いて、「その他」タブから、コンボボックスの名前欄は「性別コンボボックス」と指定しておく。
| リストボックス | 値 |
|---|---|
| ID | 0.979cm |
| 氏名 | 2.542cm |
| 性別 | 1.27cm |
| 年齢 | 1.00cm |
| 郵便番号 | 2.50cm |
| 住所 | 5.50cm |
| 電話番号 | 2.542cm |
リストボックスは、リストボックスのプロパティシートより、列数を「7」とし、列幅欄には、右記表1の値をセミコロン(;)で区切って1行で入力する。列数に「7」を指定するのは、フィールドが7個あるからだ。
リストボックスの書式は、列見出しに「はい」、フォント名に「Meiryo UI」、フォントサイズは「12」とする。「その他」タブの名前欄は「結果リストボックス」と指定しておく。
性別コンボボックスには、「値集合ソース」と「値集合タイプ」も指定する。性別コンボボックスを選び、上部の「データ」タブから、値集合ソースを「男;女」、値集合タイプを「値リスト」と指定する(図6)。性別の選択肢は原則として「男」か「女」のどちらかなので、いずれかをドロップダウンメニューで選べるようにすればよい(図7)。
次に、コンボボックスから性別を選んだときに処理するコードを記述する。
「性別コンボボックス」フォームを選択し、「プロパティシート」→「イベント」タブをクリックする。「▼」アイコンで[イベントプロシージャ]を選択し、「…」アイコンをクリックするとVBEが開き、
Private Sub 性別コンボボックス_Click()
End Sub
のコードが生成される。この中にリスト3のコードを記述する。
Private Sub 性別コンボボックス_Click()
Dim myRecordSet As Recordset
Dim sexSQL As String
sexSQL = "Select * From 顧客管理テーブル Where 性別=" & "'" & 性別コンボボックス.Value & "';"
Set myRecordSet = CurrentDb.OpenRecordset(sexSQL)
結果リストボックス.RowSourceType = "Table/Query"
結果リストボックス.RowSource = sexSQL
myRecordSet.Close
Set myRecordSet = Nothing
End Sub
リスト3のコードは、以下のように記述されている。
次回起動時は性別コンボボックスの内容が空(から)になるよう、以下の処理も追加しておこう。
性別リストボックスを選択してForm_Loadイベントプロシージャを作成し、この中にリスト4のコードを記述する。
Private Sub Form_Load() 氏名リストボックス.RowSourceType = "Table/Query" 氏名リストボックス.RowSource = "Select 氏名 From 顧客管理テーブル;" 性別コンボボックス = "" End Sub
実行すると、図8のように表示される。
どんなビジネスにも欠かせないリレーショナルデータベースの基礎知識と作り方――テーブル、レコード、フィールド、主キーとは
Access VBAでデータ入力フォームを作り、各コントロールを追加するためのデザインビューの使い方
Accessを使うなら最低限知っておきたいSQL文を使ったさまざまな種類のクエリ操作の基本
初心者でも図解で分かる! VBEの基本的な使い方とVBAプログラムの基礎文法
Accessでフォームからデータを追加し、Excelのシートにエクスポートする
SQLとはどういう言語か
数値判定、乱数発生、数値の丸めなど、数値に関する4つの関数の使い方
制御文で道案内
使うほどに良さが分かる正規表現
.NET Frameworkがサポートする正規表現クラスを徹底活用する(前編)
.NET Frameworkがサポートする正規表現クラスを徹底活用する(後編)Copyright © ITmedia, Inc. All Rights Reserved.