【連載】#22 Accessの選択クエリでテーブルの フィールド間計算をしよう

【連載】#22 Accessの選択クエリでテーブルの フィールド間計算をしよう

 

access集計グループ合計

本記事では Access の 選択クエリ操作でテーブルのフィールド間計算を行って新しいフィールドを作成する方法、マクロを使ったアクションの統合方法、マクロの自動実行方法、Excelの2軸グラフの作成方法等を紹介します。

【連載】#22 Accessの選択クエリでテーブルの フィールド間計算をしよう
しらかば堂

いつも記事を読んで頂きありがとうございます~
今日の調子はいかがですか?

 

Accessの選択クエリでテーブルのフィールド間計算をしよう

本記事では

【連載】#18 Access を使ってグラフ作成用データをどのように作るか一緒に考えよう

の中で紹介した

  • 日付、退院数、入院数、退院率=日付毎の退院数÷日付毎の入院数 を フィールド とするレコード をもつ テーブル の作成が必要
  • テーブル を Excel ブックとしてエクスポートすることが必要
  • Excel ブックで、日付、入院数、退院数、退院率による 2軸グラフ の作成が必要


という方針に沿って

access集計グループ合計

で作成した
T1030_日付_退院者数_入院者数

をもとにこれらを組み立てていくやり方を紹介します。

具体的には 記事 #18で紹介した
M1000_作成_T1040_日付_退院者数_入院者数_退院率
の中の
Q1040_作成_T1040_日付_退院者数_入院者数_退院率
つまり

【連載】#22 Accessの選択クエリでテーブルの フィールド間計算をしよう

の紹介になります。

【連載】#22 Accessの選択クエリでテーブルの フィールド間計算をしよう
みなみ

これなら何とかなるかも~♪

選択クエリの対象となるテーブル仕様

入力テーブル

前回記事で作成したこのクエリの入力となる
T1030_日付_退院者数_入院者数 テーブル
は以下のようなものでした。

全体を把握するために先頭部分と最後尾の2つのデータシートビューを掲載しておきます。

【連載】#22 Accessの選択クエリでテーブルの フィールド間計算をしよう
【連載】#22 Accessの選択クエリでテーブルの フィールド間計算をしよう

ここに

  • 全てのレコードは日付毎の退院者数の合計、入院者数の合計になっている
  • 退院者数は最後尾以前で欠損している

という特徴を確認できるでしょうか。

出力テーブル

次にこちらが
Q1040_作成_T1040_日付_退院者数_入院者数_退院率
を実行後の出力として作成される
T1040_日付_退院者数_入院者数_退院率 テーブル
です。

こちらも先頭と最後尾の2つのデータシートビューをあわせて掲載します。

【連載】#22 Accessの選択クエリでテーブルの フィールド間計算をしよう
【連載】#22 Accessの選択クエリでテーブルの フィールド間計算をしよう

どうでしょう

  • 全てのレコードは日付毎に退院者数、入院者数、退院率というフィールドを持っている
  • この退院率は最後尾以前で欠損している

という特徴を確認できるでしょうか。

ちなみに退院率は

退院率=退院者数÷入院者数

で計算された値です。

さてこの
Q1040_作成_T1040_日付_退院者数_入院者数_退院率
はどうやって作るのでしょうか。

テーブルのフィールド間計算手順を確認しよう

テーブルフィールド間で計算する具体的な手順は動画を見たほうが早いので、次の動画再生画面を一度クリックして下に三本線メニュを出し 2 フィールド間の計算 を選択してから何回かご覧ください。

画面をフルスクリーンにしたり、巻き戻したり、必要に応じて音楽をミュート後、再生速度を変えたりして何回か見て頂くことをお勧めします。

【連載】#22 Accessの選択クエリでテーブルの フィールド間計算をしよう
しらかば堂

いかがですか?
それではここまでを詳しく説明しますね。

式ビルダでフィールド間計算クエリを作ろう

それでは改めて
Q1040_作成_T1040_日付_退院者数_入院者数_退院率

【連載】#22 Accessの選択クエリでテーブルの フィールド間計算をしよう

を見てみましょう。

このクエリデザインビューの下の部分をデザイングリッドと言いますが

このクエリの一番右のフィールドに対するデザイングリッドフィールド項目には

退院率: [T1030_日付_退院者数_入院者数]![退院者数]/[T1030_日付_退院者数_入院者数]![入院者数]

と記載されています。

この記述を作るためには、まずこの退院率と記載されているフィールド項目上でマウスをクリック後、リボンメニューにあるビルダーボタン をクリックして

【連載】#22 Accessの選択クエリでテーブルの フィールド間計算をしよう

以下の式ビルダをポップアップします。

【連載】#22 Accessの選択クエリでテーブルの フィールド間計算をしよう

そして

  1. 上部の演算クエリフィールドの入力フィールドに
    退院率:
    と記入し
  2. そのまま下部左の式の要素(X)フィールドで T1030_日付_退院者数_入院者数 をクリックし
    続いて下部中央の式のカテゴリ(C)のフィールドで 退院者数 をクリックすると
    上部の演算クエリフィールドの入力フィールドに
     «Expr»[T1030_日付_退院者数_入院者数]![退院者数]
    という文字列が追加されるのでこの
    «Expr»
     
    部分だけDELキー等で削除し
  3. 続いて上部の 演算クエリフィールド の入力フィールドの先ほどの文字列の後に
     /
    を追記した後
  4. 下部中央の式のカテゴリ(C)のフィールドで 入院者数 をクリックすると
    上部の 演算クエリフィールド の入力フィールドに
     [T1030_日付_退院者数_入院者数]![入院者数]
    という文字列が再び追加されます

そして最後にOKボタンをクリックするとこの式が確定するというわけです。

ちなみに

[T1030_日付_退院者数_入院者数]![退院者数]

という文字列は Accessテーブル内のフィールドを表す表記法で、これは

T1030_日付_退院者数_入院者数 テーブル内の 退院者数 フィールド のことを表しています。

つまり

退院率: [T1030_日付_退院者数_入院者数]![退院者数]/[T1030_日付_退院者数_入院者数]![入院者数]

T1030_日付_退院者数_入院者数 テーブルに定義されている全てのレコードに対して

退院者数 フィールド レコード値を 入院者数 フィールド レコード値で割り算
その結果を新しい 退院率 というフィールドの レコード値とするということを示しているわけです。

以前

【連載】#20 Accessの選択クエリで式ビルダを使い関数、条件式の入力効率を高めよう

の中で式ビルダを使って関数を 演算クエリフィールドの入力フィールド に差し込んでいくやり方を紹介しましたが、

今回は特定のテーブルに含まれるフィールド名を簡単に記述するために式ビルダを活用している訳ですね。

【連載】#22 Accessの選択クエリでテーブルの フィールド間計算をしよう
しらかば堂

こういった記述を
デザイングリッドフィールド欄に直接記述することもできますが
記述ミスを未然に防ぐ意味で便利な式ビルダを積極的に使いましょう。

ところで
この計算式に記載するフィールドは計算前にレコード値が確定している必要があります
つまり テーブル全体に対する集計計算結果をその確定前に計算式の中で使用することはできません。

従って今回のようにそういったことをするときはクエリをそれぞれの目的ごとに分割して定義し、それをマクロで組み合わせるといった工夫が必要になります。

【連載】#22 Accessの選択クエリでテーブルの フィールド間計算をしよう
しらかば堂

前回紹介した
Q1030_作成T1030日付退院者数入院者数
と今回紹介している
Q1040_作成T1040日付退院者数入院者数_退院率
が別のクエリとして分割定義されているのはそういう理由なんです。

 

マクロでアクションを統合しよう

メッセージの抑制アクションとクエリを組み込もう

続いて記事 #18 で紹介している
M1000_作成_T1040_日付_退院者数_入院者数_退院率

【連載】#22 Accessの選択クエリでテーブルの フィールド間計算をしよう

を実際に組み立てる手順を紹介しましょう。

こちらも具体的な手順は動画を見たほうが早いので、

次の動画再生画面を一度クリックして下に三本線メニュを出し 3 マクロでクエリをまとめる を選択してから何回かご覧ください。

画面をフルスクリーンにしたり、巻き戻したり、必要に応じて音楽をミュート後、再生速度を変えたりして見て頂くことをお勧めします。

ここでのポイントは

  • マクロの先頭で警告アラーム抑制のためのメッセージの設定をした後
  • 定義済みの以下のマクロを実行順に追加し
  • テーブルExcelにエクスポートするアクション を追加している

ということです。

【連載】#22 Accessの選択クエリでテーブルの フィールド間計算をしよう
しらかば堂

メッセージの抑制等のアクションの意味については
以下の記事を参照してくださいね。

【連載】#16 Accessのマクロを細かく調整し、おしゃれに自動化する方法を説明します
Accessマクロ1

テーブルのExcelへのエクスポート処理を組み込もう

ところでこの
M1000_作成_T1040_日付_退院者数_入院者数_退院率 マクロ
の作り方の手順の最後にある
T1040_日付_退院者数_入院者数_退院率
Excel ファイルにエクスポートする手順がありますよね。

こちらも具体的な手順は動画を見たほうが早いので

先ほどの動画再生画面を一度クリックして下に三本線メニュを出し 4 テーブルエクスポート を選択してから何回かご覧ください。

画面をフルスクリーンにしたり、巻き戻したり、必要に応じて音楽をミュート後、再生速度を変えたりして見て頂くことをお勧めします。

【連載】#22 Accessの選択クエリでテーブルの フィールド間計算をしよう
しらかば堂

テーブルExcelへのエクスポート手順の詳細については
以下の記事を参照してくださいね。

【連載】#14 Access のテーブルを Excelブックにエクスポートする方法を説明します

マクロを自動実行しよう

次にマクロの自動化手順について簡単にふれておきます。

以下の autoexec マクロでは

【連載】#22 Accessの選択クエリでテーブルの フィールド間計算をしよう

次のように

  • M1000_作成_T1040_日付_退院者数_入院者数_退院率 の実行(Excelへのエクスポート含む)
  • エクスポートされたファイルの格納パス、ファイル名のポップアップ
  • Access の終了

    の全てを組み込み、そのマクロ に autoexec という名前をつけることでこの
    18_02.accdb
    という Access ファイルをダブルクリックしたとき自動的に
    M1000_作成_T1040_日付_退院者数_入院者数_退院率 マクロ
    を自動実行し、エクスポートされたファイルの格納パス、ファイル名をポップアップ後、し Access そのものを終了するところまでを一気通貫で実行できます。

    こちらも具体的な手順は動画を見たほうが早いので、

    先ほどの動画再生画面を一度クリックして下に三本線メニュを出し 5 マクロの自動実行設定 を選択してから何回かご覧ください。

    画面をフルスクリーンにしたり、巻き戻したり、必要に応じて音楽をミュート後、再生速度を変えたりして見て頂くことをお勧めします。

    【連載】#22 Accessの選択クエリでテーブルの フィールド間計算をしよう
    しらかば堂

    マクロの自動化にむけた手順の詳細についても
    以下の記事を参考にしてくださいね

    【連載】#16 Accessのマクロを細かく調整し、おしゃれに自動化する方法を説明します

    Excelの2値グラフの作成方法を確認しよう

    この部分は Excel の一般的な2値グラフの作成手順で Access そのものの話ではありませんが、このグラフ描画も含めた一連の作業を後で バッチファイルにまとめて自動化するため、その描画手順を関連動画として次の動画にまとめておきました。

    必要に応じて画面をフルスクリーンにしたり、巻き戻したり、必要に応じて音楽をミュート後、再生速度を変えたりして何回か見てくださいね。

     

    この手順の結果として、以下のような 2軸グラフ を得ることができました。

    【連載】#22 Accessの選択クエリでテーブルの フィールド間計算をしよう

    この 2軸グラフを描画しているExcelファイルはテンプレート T1040_日付_退院者数_入院者数_退院率_グラフ.xlsx として次回以降の記事で使用します。

    まとめ

    いかがですか?

    本記事では Access選択クエリ操作でテーブルフィールド間計算を行って新しいフィールドを作成する方法、マクロを使ったアクションの統合方法、マクロの自動実行方法、Excelの2軸グラフの作成方法等を紹介しました。具体的には

    • テーブルの式ビルダを使ったフィールド間での計算クエリの作成手順
    • 関連クエリを1つのマクロで結合する手順
    • テーブルのExcelブックへのエクスポート手順
    • マクロを自動実行させる手順
    • エクスポートされた Excel ブックからの2軸グラフの作成手順 

    について駆け足で紹介しました。

     

    また記事#18 に関連して 東京都_新型コロナウイルス陽性患者発表詳細に掲載のCSVデータのダウンロードからグラフ描画までを一気通貫で行うバッチファイルの作り方について紹介する予定です。

      さてこの記事全体の目標は

      •  今の状況から抜け出してもっと前向きな仕事に取り組みたい
      • さっさと仕事を切り上げて充実したアフターファイブを過ごしたい

      でしたよね。

      あなたの解決したい問題は何ですか?
      次回はまた

      【連載】#23 バッチファイル で CSVダウンロード Access データ処理 Excel グラフ描画 を統合する

      で Access VBA の新しい窓を開きましょう。


      Microsoft Access 関連教材は次のリンクからどうぞ。

      Access VBA 関連教材の紹介


      (有償)本記事中で参照している 16_01.accdb から個人のPC環境に依存する部分を削除した 16_02.zip のダウンロードは次のリンクからどうぞ。

      (有償) 16_02.zip をダウンロードする


      (有償)本記事中で作成した 18_02.accdb から個人のPC環境に依存する部分を削除した 18_03.zip のダウンロードは次のリンクからどうぞ。

      (有償) 18_03.zip をダウンロードする