次は、「テキストボックス」へ、先ほど配置したリストボックス(氏名リストボックス)より選択した「氏名」に該当する「郵便番号」と「住所」を表示する方法を実践していこう。
氏名リストボックスの下に「テキストボックス」コントロールを二つ配置して、項目名となるラベルは、それぞれ「〒」「住所」とする。書式は、プロパティシートより、フォント名に「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のように表示される。
どんなビジネスにも欠かせないリレーショナルデータベースの基礎知識と作り方――テーブル、レコード、フィールド、主キーとは
Access VBAでデータ入力フォームを作り、各コントロールを追加するためのデザインビューの使い方
Accessを使うなら最低限知っておきたいSQL文を使ったさまざまな種類のクエリ操作の基本
初心者でも図解で分かる! VBEの基本的な使い方とVBAプログラムの基礎文法
Accessでフォームからデータを追加し、Excelのシートにエクスポートする
SQLとはどういう言語か
数値判定、乱数発生、数値の丸めなど、数値に関する4つの関数の使い方
制御文で道案内
使うほどに良さが分かる正規表現
.NET Frameworkがサポートする正規表現クラスを徹底活用する(前編)
.NET Frameworkがサポートする正規表現クラスを徹底活用する(後編)Copyright © ITmedia, Inc. All Rights Reserved.