最後に、「タブコントロール」も配置しよう。「男/女」別のレコードをタブ別に表示させる機能だ。
まず、フォームへ「タブコントロール」を配置する(図9)。これまでと同様に、プロパティシートの「その他」タブから、配置するタブコントロールの名前を「性別タブコントロール」と決めておく。
表れる二つのタブのうち、まず一つ目のタブから作業しよう。プロパティシートの「その他」タブ→名前欄へ、タブの表示名となる「男性」を入れる。この「男性」タブを選択した状態で「リストボックス」を配置する。リストボックスのプロパティには、列数に「7」、列幅は、前述した表1の値を同様にセミコロン(;)で区切って入力する。書式は、フォント名に「Meiryo UI」、フォントサイズは「12」に、「その他」タブにある名前欄は「男性結果リストボックス」と指定する。
続いて、二つ目のタブ名は「女性」とし、男性タブと同様にリストボックスを配置して、書式などを設定する。リストボックスの名前は「女性結果リストボックス」と指定する。
今回は使わないが、タブの追加も可能だ。タブコントロールの上で右クリックメニューを開くと表れる、「ページの挿入」で新しいタブを追加できる。削除も「ページの削除」で行える。
作成した「性別タブ」を選ぶと結果が表示される、「結果リストボックス」のためのコードを記述していく。
「性別タブコントロール」を選択し、「プロパティシート」→「イベント」タブをクリックする。「▼」アイコンで[イベントプロシージャ]を選択し、「…」アイコンをクリックするとVBEが開き、
Private Sub性別タブコントロール_Click()
End Sub
のコードが生成される。この中にリスト5のコードを記述する。
Private Sub 性別タブコントロール_Click() Dim myRecordSet As Recordset Dim selectPage As Integer Dim SQL As String selectPage = 性別タブコントロール.Value Select Case selectPage Case 0 SQL = "Select * From 顧客管理テーブル Where 性別='男';" Set myRecordSet = CurrentDb.OpenRecordset(SQL) 男性結果リストボックス.RowSourceType = "Table/Query" 男性結果リストボックス.RowSource = SQL Case 1 SQL = "Select * From 顧客管理テーブル Where 性別='女';" Set myRecordSet = CurrentDb.OpenRecordset(SQL) 女性結果リストボックス.RowSourceType = "Table/Query" 女性結果リストボックス.RowSource = SQL End Select myRecordSet.Close Set myRecordSet = Nothing End Sub
リスト5のコードは、以下のように記述されている。
実行すると、図10のように表示される。これで、タブを選択すると「男性」と「女性」それぞれのデータに切り替わる機能が追加できた。
ここまで、Accessのフォームでよく使われる、「テキストボックス」「リストボックス」「コンボボックス」「タブコントロール」の使い方を実践形式で解説してきた。フォームで使用可能なコントロールはこの他にもあるが、まずこの四つをマスターしておけば応用の範囲が広がるはずだ。
次回は、「AccessのテーブルへCSVデータを表示させる」「AccessのレコードをCSV形式で書き出してExcelで表示させる」といった、Microsoft Officeや他ソフトウェアとの連携に役立つ「ファイル入出力」のノウハウを紹介する。お楽しみに。
薬師寺国安事務所代表。Visual Basicプログラミングと、マイクロソフト系の技術をテーマとした、書籍や記事の執筆を行う。
1950年生まれ。事務系のサラリーマンだった40歳から趣味でプログラミングを始め、1996年より独学でActiveXに取り組む。
1997年に薬師寺聖とコラボレーション・ユニット「PROJECT KySS」を結成。
2003年よりフリーになり、PROJECT KySSの活動に本格的に参加。.NETやRIAに関する書籍や記事を多数執筆する傍ら、受託案件のプログラミングも手掛ける。
Windows Phoneアプリ開発を経て、現在はWindowsストアアプリを多数公開中。
Microsoft MVP for Development Platforms - Client App Dev (Oct 2003-Sep 2012)
Microsoft MVP for Development Platforms - Windows Phone Development(Oct 2012-Sep 2013)
Microsoft MVP for Development Platforms - Client Development(Oct 2013-Sep 2014)
Microsoft MVP for Development Platforms-Windows Platform Development (Oct 2014-Sep 2015)
Copyright © ITmedia, Inc. All Rights Reserved.