続いて、選択した性別に該当するレコードをリストボックスに表示するための「コンボボックス」を配置しよう。
ここでは、フォーム上に「コンボボックス」と「リストボックス」を一つずつ作成する(図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のように表示される。
Copyright © ITmedia, Inc. All Rights Reserved.