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

オプショングループ(まとめ)

オプショングループに関連するページ

  1. オプショングループの作成
  2. オプショングループで人口規模別に表示を切り替える。
  3. チェックボックスでレポートの表示を切り替える。
  4. オプショングループで、パターンの違うレポートを表示する。

オプショングループの作成

こちらは、Accessで作成したフォームに、オプションボタンを設置して、それぞれの項目を選択できるようにしています。このように複数のオプションボタンを設置して、そのうちどれかひとつを、選択できるようにするには、オプションボタンを、オプショングループの中に入れておく必要があります。

オプションボタン

オプショングループとオプションボタンを設置するには、フォームをデザインビューで開けて、リボンの「フォームデザインツール」「デザイン」の中から、「オプショングループ」をクリックします。

フォームデザイン

オプショングループの作成

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

「人口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"

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

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

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

チェックボックスでレポートの表示を切り替える。

こちらは、Accessで作成したフォームにチェックボックスを単独で配置しています。「人口500万人以上」のチェックボックスをオンにして、「都道府県表示」ボタンをクリックすると、人口500万人以上の都道府県を抽出したレポートが表示されます。

フォーム

コマンド1(都道府県表示ボタン)クリック時イベントにコードを書きます。

  1. チェック1(チェックボックス)にチェックが入っている時と、入っていない時で、If Elseステートメントで条件分岐をします。
  2. Ifで、チェック1のValueプロパティがTrueのとき、抽出条件を、[県人口]フィールドの値が500万以上に指定して、レポートを印刷プレビューモードで開きます。
  3. ElseIfで、チェック1のValueプロパティがFalseのとき、抽出条件は指定せずに、レポートを印刷プレビューモードで開きます。
  4. それ以外、Elseのときも、抽出条件は指定せずに、レポートを印刷プレビューモードで開きます。
Private Sub コマンド1_Click()
If Me.チェック1.Value = True Then
    DoCmd.OpenReport "R_都道府県", acViewPreview, , "県人口 >= 5000000"
ElseIf Me.チェック1.Value = False Then
    DoCmd.OpenReport "R_都道府県", acViewPreview
Else
    DoCmd.OpenReport "R_都道府県", acViewPreview
End If
End Sub

次に、レポートの読み込み時イベントにラベルの表示を変更します。
チェック1のValueプロパティがTrueのとき、タイトルラベルの表示を「人口500万人以上」とします。それ以外の時は、なにも記述していませんが、元々設定している「都道府県一覧」と表示されます。

Private Sub Report_Load()
If Forms!F_main!チェック1.Value = True Then
    Me.lbl_標題.Caption = "人口500万人以上"
End If
End Sub

チェックボックスでレポートの表示を切り替える。

オプショングループで、パターンの違うレポートを表示する。

こちらは、日本を10の地域に分類し、各地域の人口を載せた一覧表と、さらに各地域の都道府県のデータを一覧にした、サンプルレポートです。この2つの一覧表は、1つのレポートから作られており、レポートの「読み込み時」イベントにコードを書くことで、表示するパターンを変えています。

レポート

こちらが、都道府県別の県庁所在地や人口などを載せた、一覧となっています(近畿地方)。

レポート
その表示の切り替えをするために、フォームにオプションボタン2つ用意します。こちらは、フォームのデザインビューで、このオプションボタンは、オプショングループウィザードで、オプショングループとして作っていくようにします。

フォームデザイン

こちらが、レポート読み込み時イベントに記述するコードです。

Option Compare Database
Option Explicit
Dim aFrame As Integer

Private Sub Report_Load()
aFrame = Forms!F_main!フレーム1.Value

Select Case aFrame
Case 1
    Me.lbl_標題.Caption = "日本の地域一覧"
    Me.地域IDヘッダー.ForceNewPage = 0
    Me.地域IDヘッダー.Height = 283
    Me.lbl_都道府県.Visible = False
    Me.lbl_県庁所在地.Visible = False
    Me.lbl_人口.Visible = False
    Me.lbl_県花.Visible = False
    Me.詳細.Visible = False
    Me.lbl_合計.Visible = False
    
Case 2
    Me.lbl_地域人口.Visible = False
    Me.地域IDヘッダー.ForceNewPage = 1
    Me.直線2.Visible = False
    Me.レポートフッター.Visible = False
End Select

End Sub

オプショングループで、パターンの違うレポートを表示する。

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

コメントを残す

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

コメントフィード

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

PAGE TOPへ戻る