プロが教えるわが家の防犯対策術!

Accessで体力テストの管理表を作成しようと思います。
体力測定用紙に結果を手で入力し、その結果をAccessフォーム上で入力し、レポート出力時に1回分の測定結果のみでなく、前回、前々回分のデータも表示させるようにしたいですが作り方がわかりません。フォームでの入力は測定時の結果のみでレポート上で今回、前回、前々回を表示するイメージで作成予定です。
また、例えば2回目の測定結果をフォーム上で入力してレポートで表示すると、前回測定結果は前回の測定結果にデータが表示されるようにしたいです。表示するデータはのは今回、前回、前々回のみです。体力測定用紙はExcelで作成済です。
ざっくりですがイメージは以下の通りです。

レポート
名前:アクセス太郎 年齢:50 性別:男性

今回の測定日     前回の測定日     前々回の測定日 
2019/12/1      2020/10/1      2021/11/1

項目    今回の結果     前回の結果      前々回の結果
身長    169       170        170  
体重    65㎏        67㎏         67㎏  

このように表示されるようにしたいです。
作り方のアドバイスをお願いしたいです。
よろしくお願いいたします。

A 回答 (3件)

アクセスの機能をある程度使ってということになると、一端クエリ(first(3)はSQL手書しなくてはいけないかもしれませんが )でデータを限定させた後に、クロス集計クエリを使えば、そういう形になるのではないかと思います。

この場合は、VBAは大して必要としませんが、、、

年齢などは普通データベースでは生年月日と出力日から計算したりしますので、そういうところで、いくつか関数を書いたりする必要は出てくるかもしれません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
なるほどクロス集計クエリですか!
ちょっと検討してみたいと思います。
ありがとうございます。

お礼日時:2021/12/27 11:31

テーブルの設計をうまくやれば


サブレポートを3個配置することで
実現できそう。
    • good
    • 0

どのようなテーブル構造を考えておられるのか教えていただけますか。



アクセスの特性上、同じ日のデータを横に並べるほうが作業しやすいです。どうしても、項目を横に並べたいのであれば、レポート用に、仮テーブルを作ってデータを入れていくということになると思ますが、データの欠落などいくつかの事情を考えると、何カ所かはVBAで書かないといけないような予感がします。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
測定結果を入力するためのテーブルと測定結果入力時に名前や所属などをコンボボックスで選択し値を指定のフィールドに入れるためのテーブルは作成しようと考えています。
何がしたいかといいますと、測定結果を基に前年度、前々年度との結果の比較をしここの数値が良い悪いかを見せるために作成します。

やはりVBAは必要になってきそうですか
ちなみにレポート上でデータを出力するときに今回、前回、前々回のみのデータを表示することは可能でしょうか?

お礼日時:2021/12/20 13:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!