連載
Accessのコントロールに値集合タイプ/ソース、SQLでデータを表示する基本:Access VBAで学ぶ初心者のためのデータベース/SQL超入門(8)(2/4 ページ)
Accessを通じて、初心者がリレーショナルデータベースやSQLの基本を学び、データベースを使った簡単なシステムの作り方を習得する本連載。今回は、業務アプリ作成のためのAccess基本フォームの基礎と共に、値集合タイプ/ソース、SQLで各コントロールにデータを表示する方法を解説する。
「テキストボックス」へ、リストボックスで選択した氏名に該当する、「郵便番号」と「住所」を表示する
次は、「テキストボックス」へ、先ほど配置したリストボックス(氏名リストボックス)より選択した「氏名」に該当する「郵便番号」と「住所」を表示する方法を実践していこう。
氏名リストボックスの下に「テキストボックス」コントロールを二つ配置して、項目名となるラベルは、それぞれ「〒」「住所」とする。書式は、プロパティシートより、フォント名に「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: 氏名リストボックスより選択した「氏名」に合致する「郵便番号」と「住所」を表示するコード
リスト2のコードは、以下のように記述されている。
- 6行目:RecordSet型の変数myRecordSetを宣言する
- 7行目:文字列型のyuubinSQLとaddressSQLを宣言する
- 10行目:yuubinSQLに「氏名リストボックス」で選択された「氏名」に該当する「郵便番号」フィールドを取得するための「SQL文」を指定する
- 12行目:CurrentDB.OpenRecordsetメソッドで、yuubinSQLに指定したクエリを開き、読み込む準備を行う
- 13行目:「郵便番号テキストボックス」へ、SQL文のクエリに該当する「郵便番号」フィールドの値を指定する
- 15〜16行目:レコードセットを閉じ、全ての関連付けから解放する
- 11行目:addressSQLに「氏名リストボックス」で選択された「氏名」に該当する「住所」フィールドを取得するための「SQL文」を指定する
- 18行目:CurrentDB.OpenRecordsetメソッドで、addressSQLに指定したクエリを開き、読み込む準備を行う
- 19行目:「住所テキストボックス」へ、SQL文のクエリに該当する「住所」フィールドの値を指定する
- 21〜22行目:再度、レコードセットを閉じ、全ての関連付けから解放する
実行すると、図4のように表示される。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- どんなビジネスにも欠かせないリレーショナルデータベースの基礎知識と作り方――テーブル、レコード、フィールド、主キーとは
Accessを通じて、初心者がリレーショナルデータベースやSQLの基本を学び、データベースを使った簡単なシステムの作り方を習得する本連載。初回はデータベースの基本を理解し、Accessを使い始めてみよう - Access VBAでデータ入力フォームを作り、各コントロールを追加するためのデザインビューの使い方
今回は、テーブルを基にデータ入力フォームを作成し、ラベル、テキストボックス、コンボボックス、ボタンリストボックスを追加する手順を解説する - SQLとはどういう言語か
- Accessを使うなら最低限知っておきたいSQL文を使ったさまざまな種類のクエリ操作の基本
今回は、テーブルに「SELECT文」や「BETWEEN演算子」などのSQLを入力し、データベースに蓄積したレコードを抽出する方法を解説する - 初心者でも図解で分かる! VBEの基本的な使い方とVBAプログラムの基礎文法
- Accessでフォームからデータを追加し、Excelのシートにエクスポートする
- SQLとはどういう言語か
- 数値判定、乱数発生、数値の丸めなど、数値に関する4つの関数の使い方
- 制御文で道案内
- 使うほどに良さが分かる正規表現
- .NET Frameworkがサポートする正規表現クラスを徹底活用する(前編)
- .NET Frameworkがサポートする正規表現クラスを徹底活用する(後編)