本記事では Access の 選択クエリ操作でテーブルのフィールド間計算を行って新しいフィールドを作成する方法、マクロを使ったアクションの統合方法、マクロの自動実行方法、Excelの2軸グラフの作成方法等を紹介します。
目次
Accessの選択クエリでテーブルのフィールド間計算をしよう
本記事では
の中で紹介した
- 日付、退院数、入院数、退院率=日付毎の退院数÷日付毎の入院数 を フィールド とするレコード をもつ テーブル の作成が必要
- テーブル を Excel ブックとしてエクスポートすることが必要
- Excel ブックで、日付、入院数、退院数、退院率による 2軸グラフ の作成が必要
で作成した
T1030_日付_退院者数_入院者数
をもとにこれらを組み立てていくやり方を紹介します。
具体的には 記事 #18で紹介した
M1000_作成_T1040_日付_退院者数_入院者数_退院率
の中の
Q1040_作成_T1040_日付_退院者数_入院者数_退院率
つまり
の紹介になります。
これなら何とかなるかも~♪
選択クエリの対象となるテーブル仕様
入力テーブル
前回記事で作成したこのクエリの入力となる
T1030_日付_退院者数_入院者数 テーブル
は以下のようなものでした。
全体を把握するために先頭部分と最後尾の2つのデータシートビューを掲載しておきます。
ここに
- 全てのレコードは日付毎の退院者数の合計、入院者数の合計になっている
- 退院者数は最後尾以前で欠損している
という特徴を確認できるでしょうか。
出力テーブル
次にこちらが
Q1040_作成_T1040_日付_退院者数_入院者数_退院率
を実行後の出力として作成される
T1040_日付_退院者数_入院者数_退院率 テーブル
です。
こちらも先頭と最後尾の2つのデータシートビューをあわせて掲載します。
どうでしょう
- 全てのレコードは日付毎に退院者数、入院者数、退院率というフィールドを持っている
- この退院率は最後尾以前で欠損している
という特徴を確認できるでしょうか。
ちなみに退院率は
退院率=退院者数÷入院者数
で計算された値です。
さてこの
Q1040_作成_T1040_日付_退院者数_入院者数_退院率
はどうやって作るのでしょうか。
テーブルのフィールド間計算手順を確認しよう
テーブルのフィールド間で計算する具体的な手順は動画を見たほうが早いので、次の動画再生画面を一度クリックして下に三本線メニュを出し 2 フィールド間の計算 を選択してから何回かご覧ください。
画面をフルスクリーンにしたり、巻き戻したり、必要に応じて音楽をミュート後、再生速度を変えたりして何回か見て頂くことをお勧めします。
いかがですか?
それではここまでを詳しく説明しますね。
式ビルダでフィールド間計算クエリを作ろう
それでは改めて
Q1040_作成_T1040_日付_退院者数_入院者数_退院率
を見てみましょう。
このクエリのデザインビューの下の部分をデザイングリッドと言いますが
このクエリの一番右のフィールドに対するデザイングリッドのフィールド項目には
退院率: [T1030_日付_退院者数_入院者数]![退院者数]/[T1030_日付_退院者数_入院者数]![入院者数]
と記載されています。
この記述を作るためには、まずこの退院率と記載されているフィールド項目上でマウスをクリック後、リボンメニューにあるビルダーボタン をクリックして
以下の式ビルダをポップアップします。
そして
- 上部の演算クエリフィールドの入力フィールドに
退院率:
と記入し - そのまま下部左の式の要素(X)フィールドで T1030_日付_退院者数_入院者数 をクリックし
続いて下部中央の式のカテゴリ(C)のフィールドで 退院者数 をクリックすると
上部の演算クエリフィールドの入力フィールドに
«Expr»[T1030_日付_退院者数_入院者数]![退院者数]
という文字列が追加されるのでこの
«Expr»
部分だけDELキー等で削除し - 続いて上部の 演算クエリフィールド の入力フィールドの先ほどの文字列の後に
/
を追記した後 - 下部中央の式のカテゴリ(C)のフィールドで 入院者数 をクリックすると
上部の 演算クエリフィールド の入力フィールドに
[T1030_日付_退院者数_入院者数]![入院者数]
という文字列が再び追加されます
そして最後にOKボタンをクリックするとこの式が確定するというわけです。
ちなみに
[T1030_日付_退院者数_入院者数]![退院者数]
という文字列は Access のテーブル内のフィールドを表す表記法で、これは
T1030_日付_退院者数_入院者数 テーブル内の 退院者数 フィールド のことを表しています。
つまり
退院率: [T1030_日付_退院者数_入院者数]![退院者数]/[T1030_日付_退院者数_入院者数]![入院者数]
は
T1030_日付_退院者数_入院者数 テーブルに定義されている全てのレコードに対して
退院者数 フィールド のレコード値を 入院者数 フィールド のレコード値で割り算し
その結果を新しい 退院率 というフィールドの レコード値とするということを示しているわけです。
以前
の中で式ビルダを使って関数を 演算クエリフィールドの入力フィールド に差し込んでいくやり方を紹介しましたが、
今回は特定のテーブルに含まれるフィールド名を簡単に記述するために式ビルダを活用している訳ですね。
こういった記述を
デザイングリッドのフィールド欄に直接記述することもできますが
記述ミスを未然に防ぐ意味で便利な式ビルダを積極的に使いましょう。
ところで
この計算式に記載するフィールドは計算前にレコード値が確定している必要があります。
つまり テーブル全体に対する集計計算結果をその確定前に計算式の中で使用することはできません。
従って今回のようにそういったことをするときはクエリをそれぞれの目的ごとに分割して定義し、それをマクロで組み合わせるといった工夫が必要になります。
前回紹介した
Q1030_作成T1030日付退院者数入院者数
と今回紹介している
Q1040_作成T1040日付退院者数入院者数_退院率
が別のクエリとして分割定義されているのはそういう理由なんです。
マクロでアクションを統合しよう
メッセージの抑制アクションとクエリを組み込もう
続いて記事 #18 で紹介している
M1000_作成_T1040_日付_退院者数_入院者数_退院率
を実際に組み立てる手順を紹介しましょう。
こちらも具体的な手順は動画を見たほうが早いので、
次の動画再生画面を一度クリックして下に三本線メニュを出し 3 マクロでクエリをまとめる を選択してから何回かご覧ください。
画面をフルスクリーンにしたり、巻き戻したり、必要に応じて音楽をミュート後、再生速度を変えたりして見て頂くことをお勧めします。
ここでのポイントは
- マクロの先頭で警告アラーム抑制のためのメッセージの設定をした後
- 定義済みの以下のマクロを実行順に追加し
- テーブルをExcelにエクスポートするアクション を追加している
ということです。
メッセージの抑制等のアクションの意味については
以下の記事を参照してくださいね。
テーブルのExcelへのエクスポート処理を組み込もう
ところでこの
M1000_作成_T1040_日付_退院者数_入院者数_退院率 マクロ
の作り方の手順の最後にある
T1040_日付_退院者数_入院者数_退院率
をExcel ファイルにエクスポートする手順がありますよね。
こちらも具体的な手順は動画を見たほうが早いので
先ほどの動画再生画面を一度クリックして下に三本線メニュを出し 4 テーブルエクスポート を選択してから何回かご覧ください。
画面をフルスクリーンにしたり、巻き戻したり、必要に応じて音楽をミュート後、再生速度を変えたりして見て頂くことをお勧めします。
テーブルのExcelへのエクスポート手順の詳細については
以下の記事を参照してくださいね。
マクロを自動実行しよう
次にマクロの自動化手順について簡単にふれておきます。
以下の autoexec マクロでは
次のように
- M1000_作成_T1040_日付_退院者数_入院者数_退院率 の実行(Excelへのエクスポート含む)
- エクスポートされたファイルの格納パス、ファイル名のポップアップ
- Access の終了
の全てを組み込み、そのマクロ に autoexec という名前をつけることでこの
18_02.accdb
という Access ファイルをダブルクリックしたとき自動的に
M1000_作成_T1040_日付_退院者数_入院者数_退院率 マクロを自動実行し、エクスポートされたファイルの格納パス、ファイル名をポップアップ後、し Access そのものを終了するところまでを一気通貫で実行できます。
こちらも具体的な手順は動画を見たほうが早いので、
先ほどの動画再生画面を一度クリックして下に三本線メニュを出し 5 マクロの自動実行設定 を選択してから何回かご覧ください。
画面をフルスクリーンにしたり、巻き戻したり、必要に応じて音楽をミュート後、再生速度を変えたりして見て頂くことをお勧めします。
マクロの自動化にむけた手順の詳細についても
以下の記事を参考にしてくださいね
Excelの2値グラフの作成方法を確認しよう
この部分は Excel の一般的な2値グラフの作成手順で Access そのものの話ではありませんが、このグラフ描画も含めた一連の作業を後で バッチファイルにまとめて自動化するため、その描画手順を関連動画として次の動画にまとめておきました。
必要に応じて画面をフルスクリーンにしたり、巻き戻したり、必要に応じて音楽をミュート後、再生速度を変えたりして何回か見てくださいね。
|
この手順の結果として、以下のような 2軸グラフ を得ることができました。
この 2軸グラフを描画しているExcelファイルはテンプレート T1040_日付_退院者数_入院者数_退院率_グラフ.xlsx として次回以降の記事で使用します。
まとめ
いかがですか?
本記事では Access の 選択クエリ操作でテーブルのフィールド間計算を行って新しいフィールドを作成する方法、マクロを使ったアクションの統合方法、マクロの自動実行方法、Excelの2軸グラフの作成方法等を紹介しました。具体的には
- テーブルの式ビルダを使ったフィールド間での計算クエリの作成手順
- 関連クエリを1つのマクロで結合する手順
- テーブルのExcelブックへのエクスポート手順
- マクロを自動実行させる手順
- エクスポートされた Excel ブックからの2軸グラフの作成手順
について駆け足で紹介しました。
また記事#18 に関連して 東京都_新型コロナウイルス陽性患者発表詳細に掲載のCSVデータのダウンロードからグラフ描画までを一気通貫で行うバッチファイルの作り方について紹介する予定です。
さてこの記事全体の目標は
- 今の状況から抜け出してもっと前向きな仕事に取り組みたい
- さっさと仕事を切り上げて充実したアフターファイブを過ごしたい
でしたよね。
あなたの解決したい問題は何ですか?
次回はまた
で Access VBA の新しい窓を開きましょう。
Microsoft Access 関連教材は次のリンクからどうぞ。
(有償)本記事中で参照している 16_01.accdb から個人のPC環境に依存する部分を削除した 16_02.zip のダウンロードは次のリンクからどうぞ。
(有償)本記事中で作成した 18_02.accdb から個人のPC環境に依存する部分を削除した 18_03.zip のダウンロードは次のリンクからどうぞ。
いつも記事を読んで頂きありがとうございます~
今日の調子はいかがですか?