- ベストアンサー
accessのレポートを作成する方法とは?
- access2000で売上データのテーブルから特定のレポートを作成したい。
- 指定の形式のレポートを作成するためにいくつかの方法を試したが上手くいかなかった。
- 他の方法やアプローチがあるのか、このようなレポートを作成するのは可能なのか知りたい。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>このようなレポートを作るのはむりなのでしょうか。 無理ではありません。 UNIONクエリを作りUNIONクエリを元にクロス集計クエリで作れます。 例えばそのテーブルをTbl1としてクエリのSQLビューに SELECT "商品A" as 商品,Tbl1.日付, Tbl1.商品Aの売上 FROM Tbl1 UNION SELECT "商品B" as 商品,Tbl1.日付, Tbl1.商品Bの売上 FROM Tbl1; (Tbl1は実際のテーブル名にしてください。) でUNIONクエリを作れます。 このUNIONクエリを元にしてクロス集計クエリをすくれば出来ます。 クエリの新規作成でウィザードを使いクロス集計クエリを選択し作ったUNIONクエリを元にすれば簡単です。
その他の回答 (3)
- O_cyan
- ベストアンサー率59% (745/1260)
>クロス集計クエリで抽出条件を指定することってできるのでしょうか? PARAMETERSの設定をすれば出来ます。 クロス集計クエリのデザインビューで右クリックするとメニューにパラメータがありますのでそこで設定します。 例えばBetweenを使って抽出日付1と抽出日付2の期間に該当する日付のレコードを抽出したい場合。 日付のフィールドをクロス集計クエリに追加し集計欄をWhere条件にして抽出条件に Between [抽出日付1] And [抽出日付2] とします。 パラメータで抽出日付1としデータ型で日付/時刻型に設定します。抽出日付2も同様に設定します。 これでクロス集計クエリを開く際に[抽出日付1]と[抽出日付2]を入力するダイアログが表示されますので日付を入力すればその期間のレコードで抽出されます。 SQLでは PARAMETERS 抽出日付1 DateTime, 抽出日付2 DateTime; がクロス集計のTRANSFORMの前に設定されるようになります。 フォームのコントロールの値から抽出する際もパラメータを[Forms]![フォーム名]![抽出日付1]で日付/時刻型に設定すれば使えます。
お礼
またまたできました! ありがとうございます。 パラメータの設定が必要なのですね。気が付きませんでした。本当に勉強になりました。 重ね重ねありがとうございました。
- CHRONOS_0
- ベストアンサー率54% (457/838)
テーブルの構造が悪いからうまくいかないのです テーブルは 日付 商品 売上 の様な形に組変えることをお勧めします (1)、(2)の回答は今の形の悪いテーブルをユニオンクエリで 扱える形に組変えてから処理するものです でも今の形のテーブルだと他にも不都合なことが出てきます やり変えるなら早い方が楽ですよ (2)の回答のユニオンクエリでできたものをテーブルにすれば テーブルの組み替えが出来ます 詳しくはヘルプで[テーブル構造][正規化]などを調べてください
レポートの問題というよりもクエリの問題でしょう。 中間に仮のテーブルを経由すればクロス集計クエリでできると考えます。 しかしレポートで日付部分は動的に変化するのでしょうから、その部分はVBAなどで作り込んでやる必要があるでしょう。
お礼
ありがとうございました。できました! ユニオンクエリは複数テーブルで使うものと思っていましたが、このような使い方もできるのですね。これは便利!いろいろなところで応用できそうです。非常に勉強になりました。 ありがとうございました。 ところで、クロス集計クエリで抽出条件を指定することってできるのでしょうか?