- 締切済み
Accessレポートでの前回レコード参照に関して
Accessレポートでの前回レコード参照に関して いつもお世話になっております。 Access2007を使用しています。 クエリーで集計したデータをレポートに、顧客ID毎に今回/前回の[結果]データだけを横に表示させて1枚の表にしたいと思っています。 クエリーは、[日付]、[顧客ID]、[結果1]、[結果2]、[結果3]・・・で、[日付]データは、8桁の数値になっています。 いろいろとサイトを見て、Dlookupなどで、挑戦してみたのですが、うまくいかず、皆さんのお知恵をお借りできればと思います。 宜しくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- piroin654
- ベストアンサー率75% (692/917)
簡潔にまとめていただいてありがとうございます。 いただいた情報の範囲内での回答になりますが、ご容赦を。 (1) レポートの詳細に二つのサブレポートを配置する方法。 (2) レポートウィザードで作る方法。 (3) コードを書きまくる方法 のような方法があるとは思いますが、 思考減退に伴い厳密な方法が思い浮かばないというか、 この場で説明しきる自信がないので、 (2)の方法を取り上げてみます。以下手順。 (1) 集計のクエリをQ集計とします。このクエリを もとにユニオンクエリを作ります。フィールドは適時変更、 追加してください。 SELECT Q集計.顧客ID, Q集計.日付, Q集計.結果1, Q集計.結果2, Q集計.結果3 FROM Q集計 WHERE (((Q集計.日付)=[前回集計日付])); UNION SELECT Q集計.顧客ID, Q集計.日付, Q集計.結果1, Q集計.結果2, Q集計.結果3 FROM Q集計 WHERE (((Q集計.日付)=[今回集計日付])); 適当な名前で保存します。 (2) レポートの新規作成を選択。基になるテーブルまたはクエリの 選択で保存したクエリを選択し、レポートウィザードを選択し、OKとします。 (3) 選択可能なフィールドで全て選択し、次へ行きます。 (4) グループレベルで顧客IDを選択し、次へ行きます。 (5) あとはそのまま次へを選んでレポート名を適当に設定し、 レポートのデザインを編集するを選択し、完了を選択。 (6) デザインビューが表示されたら詳細の部分でマウスを 右クリックし、並べ替え/グループ化を選択。フィールドの 空いている所の右をクリックし、日付を選択。 選択した行の右側の並べ替え順序をクリックし、 昇順を選択してレポートを保存します。 以上で終了です。 レポートをダブルクリックするとパラメータの 入力が表示され、まず前回集計日付、続いて 今回集計日付が表示されるので、それぞれの日付を 入力します。入力が済むとレポートが表示され、 IDごとに上が前回、下が今回というように表示されます。 これは一つの方法です。DLookupで何を参照しよう としたのかはわかりませんが、これを参考に何か あれば質問してください。
- piroin654
- ベストアンサー率75% (692/917)
少し追加質問。 (1) クエリのSQL文があれば見当はつくのですが、 あえて、[結果]はテーブルに既に存在するデータ ですか、あるいはクエリで集計して出した データですか。 (2) レポートでデータを表示するところは メインレポートのみですか、あるいは サブレポートですか。 データを表示するレポートの構造が どのようになっているのか、情報提供を。 (3) 日付の役割は。
- piroin654
- ベストアンサー率75% (692/917)
誰が回答するにしろ、いずれ尋ねたいこと。 (1) クエリのSQL文と、クエリが参照するテーブルの 構造。 (2) レポートを表示するときにフォームを利用しているか。 そのフォームにクエリに渡すデータが存在するか。 あればレポートを開くときのコード。 (3) レポートのレコードソース。 あれば、レポートのコード。 宝探しは大好きなのですが、スペースが限られている 中では最低限、回答に必要な情報は提供してください。
補足
(1)は、クエリのSQL文をそのまま出すわけにいかないので・・・、クエリは、テーブルを集計している、別の2つのクエリを参照しています。 (2)レポートを表示するときにフォームは利用していません。 (3)レポートのレコードソースはクエリをそのままです。 すいません。勉強不足で、回答しきれていない部分があると思います。
補足
(1)クエリで集計したデータです。 (2)メインレポートのみです。 (3)いつの結果かを区別しています。他システムから吐き出されたCSVをインポートして使っています。