#313 選択されたトグルボタンの標題を取得する方法 フォーム、VBA

オプショングループコントロール内に配置されたトグルボタンにおいては、オプショングループのValueプロパティを参照することによって、現在選択されているボタンを知ることができます。オプショングループのValueプロパティには、選択中のトグルボタンの、「オプション値」プロパティの値がセットされています。その場合、Select Caseステートメントなどを使って、ボタンごとの処理に分岐することになります。

一方、ボタンごとの処理がまったく同じような内容で、一部の文字列だけが異なるといった場合、選択されたトグルボタンの標題を利用することによって、プログラムを単純化することができます。


次の例は、サブフォームにフィルタをかけることによって、トグルボタンで選択された都道府県のデータだけを抽出表示します。
抽出実行前のフォーム


このような場合、オプショングループの値が「1(愛知県のトグルボタン)」なら"愛知県"をWhere条件とし、「2(茨城県のトグルボタン)」なら"茨城県"をWhere条件とするといったプログラムでもよいのですが、フィルタのWhere条件に指定する文字列(都道府県名)がそれぞれのトグルボタンの「標題」プロパティに設定されていますので、その標題をそのままWhere条件に利用することができます。

それには、VBAの処理だけでなく、フォームデザインとしての事前準備がポイントとなります。各トグルボタンの「名前(Nameプロパティ)」の一部に、そのボタンのオプション値プロパティと同じ数字を付けるというのがミソです。たとえば次のように設定します。

標題 名前 オプション値
愛知県 tglKen1 1
茨城県 tglKen2 2
沖縄県 tglKen3 3

このような設定を行うことによって、オプショングループで選択されたトグルボタンの標題を取得することができます。


ここで"茨城県"のボタンが選択されたケースを考えてみます。オプショングループの名前を"fra都道府県"とした場合、"茨城県"のオプション値は「2」なので、fra都道府県の値を調べると「2」という値が返されます。さらに「"tglKen" & fra都道府県」という式で文字列を組み立てることによって、"tglKen2"という、"茨城県"のトグルボタンの名前を得ることができます。あとはその「Caption」プロパティを参照することによって、"茨城県"という標題の文字列を取得することができます。これらは1行のコードで書くことができます。


これを実際にイベントプロシージャにすると、次のようなコードになります。
Private Sub fra都道府県_AfterUpdate()
'抽出都道府県の更新後処理

  Dim strKen As String

  'オプショングループで選択されたトグルボタンの標題を取得
  strKen = Me("tglKen" & fra都道府県).Caption
  
  'その標題は都道府県名なのでそれを使って
  'サブフォームにフィルタをかける
  With frm受注_sub.Form
    .Filter = "都道府県 = '" & strKen & "'"
    .FilterOn = True
  End With

End Sub

"愛知県"で抽出した結果
愛知県で抽出した結果

"茨城県"で抽出した結果
茨城県で抽出した結果
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved