このエントリーをはてなブックマークに追加

オプショングループで人口規模別に表示を切り替える。

こちらは、Accessのフォームに、人口の規模を4つに分類してラベルに表示し、それぞれにオプションボタンを設置しています。4つのオプションボタンのうちいずれかを選択して、「都道府県表示」ボタンを押すと、指定された人口規模の都道府県を抽出して、レポートに表示させるようにします。

オプションボタン

「人口500万人以上」のオプションボタンをオンにして、「都道府県表示」ボタンを押すと、このようなレポートが表示されます。

レポート

このように、どれかひとつのオプションボタンを選択できるようにするには、これらのオプションボタンをひとつのオプショングループの中に入れる必要があります。こちらのオプショングループの作成のページでウィザードを使った作成方法を載せています。

フォームデザイン

では、「都道府県表示」(ボタン1)のクリック時イベントにコードを書きます。それぞれのオプションボタンをオンにすると、そのオンにされたオプションボタンのオプション値が、オプショングループ(フレーム1)のValueプロパティに格納されます。4つのオプション値をSelect~Caseステートメントで、それぞれの人口規模で条件分岐します。そして、レポートを印刷プレビューモードで開きます。

Private Sub ボタン1_Click()
Select Case Me.フレーム1.Value
Case 1
  DoCmd.OpenReport "R_都道府県", acViewPreview, , "県人口 >= 5000000"
Case 2
  DoCmd.OpenReport "R_都道府県", acViewPreview, , "県人口 >= 2000000 and 県人口 < 5000000"
Case 3
  DoCmd.OpenReport "R_都道府県", acViewPreview, , "県人口 >= 1000000 and 県人口 < 2000000"
Case 4
  DoCmd.OpenReport "R_都道府県", acViewPreview, , "県人口 < 1000000"
Case Else
  DoCmd.OpenReport "R_都道府県", acViewPreview
End Select

End Sub

ここまでで、人口規模で分類した都道府県データが表示されますが、さらに、フッター部分に表示されている都道府県の件数を表示させるようにしていきます。

まずは、標準モジュールに4つのパブリック変数を宣言します。この4つの変数は、「都」「道」「府」「県」それぞれの件数を格納するための変数とします。

Option Compare Database
Option Explicit

Public tokyo As Integer
Public hokkai As Integer
Public fu As Integer
Public ken As Integer

そして、「都道府県表示」ボタンクリック時イベントに、それぞれの件数をDCount関数でカウントした数を変数に入れるコードを追加します。人口規模が500万人以上の「Case1」は、このようになります。

Private Sub ボタン1_Click()

Select Case Me.フレーム1.Value
Case 1
    tokyo = DCount("都道府県", "T_都道府県", "県人口 >= 5000000 and 都道府県 = '東京都'")
    hokkai = DCount("都道府県", "T_都道府県", "県人口 >= 5000000 and 都道府県 = '北海道'")
    fu = DCount("都道府県", "T_都道府県", "県人口 >= 5000000 And 都道府県 like '*府'")
    ken = DCount("都道府県", "T_都道府県", "県人口 >= 5000000 And 都道府県 like '*県'")
    
    DoCmd.OpenReport "R_都道府県", acViewPreview, , "県人口 >= 5000000"

「Case2」以降のコードも人口の抽出条件を変えて、記述していきます。最後に、何も選択されなかったときは、「Case Else」で、抽出条件は指定せず、全ての都道府県を表示させるようにしています。

Case 2
    tokyo = DCount("都道府県", "T_都道府県", "県人口 >= 2000000 and 県人口 < 5000000 and 都道府県 = '東京都'") 
    hokkai = DCount("都道府県", "T_都道府県", "県人口 >= 2000000 and 県人口 < 5000000 and 都道府県 = '北海道'") 
    fu = DCount("都道府県", "T_都道府県", "県人口 >= 2000000 and 県人口 < 5000000 And 都道府県 like '*府'") 
    ken = DCount("都道府県", "T_都道府県", "県人口 >= 2000000 and 県人口 < 5000000 And 都道府県 like '*県'") 

    DoCmd.OpenReport "R_都道府県", acViewPreview, , "県人口 >= 2000000 and 県人口 < 5000000"

Case 3 
    tokyo = DCount("都道府県", "T_都道府県", "県人口 >= 1000000 and 県人口 < 2000000 and 都道府県 = '東京都'")
    hokkai = DCount("都道府県", "T_都道府県", "県人口 >= 1000000 and 県人口 < 2000000 and 都道府県 = '北海道'") 
    fu = DCount("都道府県", "T_都道府県", "県人口 >= 1000000 and 県人口 < 2000000 And 都道府県 like '*府'")
    ken = DCount("都道府県", "T_都道府県", "県人口 >= 1000000 and 県人口 < 2000000 And 都道府県 like '*県'") 

    DoCmd.OpenReport "R_都道府県", acViewPreview, , "県人口 >= 1000000 and 県人口 < 2000000"
Case 4
    tokyo = DCount("都道府県", "T_都道府県", "県人口 < 1000000 and 都道府県 = '東京都'")
    hokkai = DCount("都道府県", "T_都道府県", "県人口 < 1000000 and 都道府県 = '北海道'")
    fu = DCount("都道府県", "T_都道府県", "県人口 < 1000000 And 都道府県 like '*府'")
    ken = DCount("都道府県", "T_都道府県", "県人口 < 1000000 And 都道府県 like '*県'")
    
    DoCmd.OpenReport "R_都道府県", acViewPreview, , "県人口 < 1000000"

Case Else
    tokyo = DCount("都道府県", "T_都道府県", "都道府県 = '東京都'")
    hokkai = DCount("都道府県", "T_都道府県", "都道府県 = '北海道'")
    fu = DCount("都道府県", "T_都道府県", "都道府県 like '*府'")
    ken = DCount("都道府県", "T_都道府県", "都道府県 like '*県'")

    DoCmd.OpenReport "R_都道府県", acViewPreview

End Select

End Sub

では、レポートのフッターセクションに非連結のテキストボックスを4つ設置します。

レポートデザイン

レポートフッターのフォーマット時イベントにコードを書きます。表示されている都道府県の件数に「都」や「道」などの文字列を連結させて、テキストボックスに表示させます。

Private Sub レポートフッター_Format(Cancel As Integer, FormatCount As Integer)
  Me.テキスト7 = tokyo & "都"
  Me.テキスト8 = hokkai & "道"
  Me.テキスト9 = fu & "府"
  Me.テキスト10 = ken & "県"
End Sub

件数が「0」の時は、「Visible = False」で、非表示にしておきますので、コードを追加します。

If tokyo = 0 Then
    Me.テキスト7.Visible = False
End If

If hokkai = 0 Then
    Me.テキスト8.Visible = False
End If
    
If fu = 0 Then
    Me.テキスト9.Visible = False
End If
    
If ken = 0 Then
    Me.テキスト10.Visible = False
End If

 

人口200万人以上500万人未満の都道府県一覧はこのようになります。

レポート

このエントリーをはてなブックマークに追加

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

コメントフィード

トラックバックURL : http://gyoumuka.work/wp-trackback.php?p=2825

PAGE TOPへ戻る