次は、「テキストボックス」へ、先ほど配置したリストボックス(氏名リストボックス)より選択した「氏名」に該当する「郵便番号」と「住所」を表示する方法を実践していこう。
氏名リストボックスの下に「テキストボックス」コントロールを二つ配置して、項目名となるラベルは、それぞれ「〒」「住所」とする。書式は、プロパティシートより、フォント名に「Meiryo UI」、フォントサイズに「14」、フォント太さに「太字」とする。続いて「その他」タブから、項目名「〒」のテキストボックスの名前欄に「郵便番号テキストボックス」を、同じく「住所」の名前欄には「住所テキストボックス」と指定しておく。
VBEを起動して、VBAコードを記述する。Accessメニューの「作成」タブをクリックし、右端に表示されている「Visual Basic」を選択する。氏名リストボックスのイベントプロシージャを指定すると、先ほど後回しにしておいた、
Private Sub 氏名リストボックス_Click()
End Sub
のプロシージャが残っているので、リスト2のようにコードを書き換える。
Private Sub Form_Load() 氏名リストボックス.RowSourceType = "Table/Query" 氏名リストボックス.RowSource = "Select 氏名 From 顧客管理テーブル;" End Sub Private Sub 氏名リストボックス_Click() Dim myRecordSet As Recordset Dim yuubinSQL As String Dim addressSQL As String yuubinSQL = "Select 郵便番号 From 顧客管理テーブル Where 氏名=" & "'" & 氏名リストボックス.ItemData(氏名リストボックス.ListIndex) & "';" addressSQL = "Select 住所 From 顧客管理テーブル Where 氏名=" & "'" & 氏名リストボックス.ItemData(氏名リストボックス.ListIndex) & "';" Set myRecordSet = CurrentDb.OpenRecordset(yuubinSQL) 郵便番号テキストボックス = myRecordSet("郵便番号") myRecordSet.Close Set myRecordSet = Nothing Set myRecordSet = CurrentDb.OpenRecordset(addressSQL) 住所テキストボックス = myRecordSet("住所") myRecordSet.Close Set myRecordSet = Nothing End Sub
リスト2のコードは、以下のように記述されている。
実行すると、図4のように表示される。
Copyright © ITmedia, Inc. All Rights Reserved.