Microsoft Access Club >初心者講座 >アンケート管理ソフト >このページ >次頁 - 前項  サイト内検索


分析グラフ作成の仕上げ : アンケート管理ソフト



今回でグラフ作成を終了しましょうか。最後の仕上げは、いろいろな場面に応じて変化にとんだグラフを仕上げるための工夫を行いましょう。

グラフサンプル

 グラフ作成の最後の仕上げ - データ抽出

作成したフォームに「フォームフッター」を表示させましょう。

  1. フォームをデザインビューで開きます。
  2. 「詳細」と書かれているところで右クリックして下さい。
  3. 「フォームフッター」を選択すればOKです。
  4. 下記のようにテキストボックスとコンボボックスを新規に作成して下さい。

データ表示のフォームにおいて、任意の日付でデータを抽出したいことは多々あります。その場合は、上記のようにテキストボックスを2個配置して行います。

 日付データの抽出

一般的に、テキストボックスを2個並べて"何日〜何日"と表示させる場合は、テキストボックスのプロパティにある「既定値」欄に各種関数等を用いて記述します。
このようにすることで、フォームが開いた瞬間に特定のデータを表示させることが可能です。開いた時に何もデータ表示がなければ、寂しいですものね。

  • 注意点は、プロパティの「定型入力」です。ここをキチンとしないと、よくエラー表示されます。入力形式は、西暦で四桁に有力がベストです。つまり、9999\年99\月99\日;0;# とします。
  • 上記のサンプルでは、左側のテキストボックスの 既定値欄 には =DMin("記入日","tbl_question") 、右側には =Date() と記述しています。これで、左側のテキストボックスには、「tbl_question」テーブルにある一番古い記述日の日付が、右側にはフォームを開けたその日の日付が表示される訳です。

性別、年齢区分のデータ抽出

次にコンボボックスを2個作成します。最初に作成するのは、性別を区分するコンボボックスです。これは入力フォームの場合と同様ですね。

  • 注意点は、コンボボックスの 「値集合ソース」 です。
    テーブルデータからリスト表示させるのか、それとも今回のように「値集合ソース」に直接項目を記述して表示させるのか、この時点で決定しておかねばいけません。
  • 今回の場合は、「値リスト」を選択しています。

「年齢区分」を選択抽出するコンボボックスの「値集合ソース」には、「tbl_age」テーブルを配置します。 つまり、テーブルデータから項目を表示させるわけです。

クエリの抽出条件欄

これで、ユーザーが日付、性別、年齢区分の抽出データを選択することができるようになりました。しかし、これだけでは、グラフの 元 になっている「値集合ソース」に影響を及ぼしません。
及ぼさなければ、グラフデータは変化しませんので、次に、値集合ソースに配置している クエリ に抽出データを記述します。

サンプルとして、qry_閲覧_1を取り上げますが、これ以外のクエリも同様に処理して下さい。

  1. 下記のように、「年齢」、「性別」、「記入日」フィールドを配置します。
  2. それぞれ、フォームから各テキストボックスやコンボボックスまでのパスを記述します。
  3. 「表示」チェックボックスは、Falseでいいと思います。

調査項目のデータ切り替え

このサンプルファイルでは、アンケート調査に5つの質問項目を設定しています。それぞれグラフ表示する方法をご紹介します。
これは他のソフト作りにも応用がききますので、覚えて置かれて損はしません。このグラフ作成の一番のポイントです。マスターして下さいね。

  • 今までは、グラフの元になっている「値集合ソース」の各フィールドに抽出条件を書き込んできましたが、今回は、この「値集合ソース」そのものを変更します。
 文字列をグラフに表示させる方法

まず、下記のようなプロパティを持つコンボボックスを1つ作成して下さい。

ここにある「調査_1」…「調査_5」は、1〜5まで区分する必要があるだけで、特にこの名前にする必要がありません。今回はこの名前自体に特別な意味合いはないんです。 この意味は追々ご理解できると思います。

  • グラフのデータ表示を決める  は、「値集合ソース」です。 よつて、この「値集合ソース」を変更してやれば、グラフのデータ表示が変わります。

前回、この「値集合ソース」について、「値集合ソースにSQL文が自動的に記述されていますが、これをqry_閲覧_1に変更して下さい」 とお願いしました。この理由は、SQL構文そのものより、クエリの方が扱い易いからです。

  • 上記の図は、Access2003バージョンのものです。よつて、他のバージョンの場合、「OLEクラス」が異なることがあります。
 値集合ソースの変更

値集合ソースを変更する方法としては、下記のようにVBAを使って上記コンボボックスの選択枝で行います。コンボボックスの更新後処理イベントに記述します。

Private Sub 対象_AfterUpdate()

    Select Case Me.対象

        Case "調査_1"
              Me.非連結OLE0.RowSource = "qry_閲覧_1" ' --- A
              Me.Index.Caption = "1.お店の印象について教えて下さい。" ' --- B

        Case "調査_2"
              Me.非連結OLE0.RowSource = "qry_閲覧_2"
              Me.Index.Caption = "2.店員の対応について教えて下さい。"

        Case "調査_3"
              Me.非連結OLE0.RowSource = "qry_閲覧_3"
              Me.Index.Caption = "3.品揃いについて教えて下さい。"

        Case "調査_4"
             Me.非連結OLE0.RowSource = "qry_閲覧_4"
              Me.Index.Caption = "4.値段について教えて下さい。"

        Case "調査_5"
            Me.非連結OLE0.RowSource = "qry_閲覧_5"
            Me.Index.Caption = "5.総合的な印象について教えて下さい。"

        Case Else: Exit Sub

    End Select

End Sub
解説
  1. RowSourceプロパティは、グラフの「値集合ソース」です。ここにクエリ名を記述します。
  2. Index.Captionとは、下記のようなグラフ左上部に題目を示すラベルです。このように、ラベルの標題もプロシージャで変更することが出来ます。

話が前後しましたが、これ以外のコンボボックスにおいても「更新後処理」イベントに下記のプロシージャを記述して下さいね。全て、このグラフを再描写させるプロシージャです。

Private Sub 年月日_1_AfterUpdate()
    DoCmd.Requery "非連結OLE0"
End Sub

Private Sub 年月日_2_AfterUpdate()
    DoCmd.Requery "非連結OLE0"
End Sub

Private Sub 年齢_AfterUpdate()
    DoCmd.Requery "非連結OLE0"
End Sub
Private Sub 性別_AfterUpdate()
    DoCmd.Requery "非連結OLE0"
End Sub
 コンボボックスを消すプロシージャ

遊び心で、下記のプロシージャをご紹介します。これは、グラフ上をクリックするとコンボボックスを消すことができるものです。正確には、"隠す"ですが…。

Private Sub 詳細_Click()

    If Me.Section(2).Visible = False Then ' --- A
        Me.Section(2).Visible = True
    Else
        Me.Section(2).Visible = False
    End If

End Sub
解説
  1. Section(2)とは、フォームフッターの別名です。この Visibleプロパティ を True と False に切り替えているだけです。

関連ページ

 

ページの先頭へ 前ページへ戻る

 


分析グラフ作成の仕上げ : アンケート管理ソフト


 

-Microsoft Access Club-