dポイントプレゼントキャンペーン実施中!

商品ごとの売上が記録されたテーブルがあります。

日付     商品 売上
2017/03/31  A   100
2017/03/31  B   200


そしてこれを基にしたクロス集計クエリがあります。

商品 2017/03/31 2017/09/30 2018/03/31 2018/09/30
A       100     400     700     1000
B       200     500     800     1100
C       300     600     900     1200


集計対象となる期間は、別途テーブルを作成して決めていおり、
[基準日]の日付を変更すると半年毎2年分が集計されるようになっています。

基準日    半年前    1年前    1年半前
2018/09/30 2018/03/31  2017/09/30 2017/03/31
※基準日より前の日付はDateSerial関数を使用


問題はクロス集計クエリの列見出しで、基準日を変更すると列見出しが変わってしまうため、
このクロス集計クエリを基にした選択クエリが作れません。

列名でなく列番号でクエリをつくれれば解決しそうですがvbaでないと実現できそうになく、
恥ずかしながらvbaの知識が乏しいため、途方に暮れています。

たとえばvbaを使わずに、クロス集計クエリの列見出しを[列1][列2][列3]…
と振り直すことはできませんでしょうか?

またその他に効果的な解決方法があれば教えてくだささい。

A 回答 (2件)

お聞きしたいのは、選択条件はどのフィールドに設定されていますかという事です。


年月日のフィールドに数量限定をかけたいというのであれば、マニュアル対応か、一度テーブルとして書き出して、フィールド名を取得するかです。
    • good
    • 1
この回答へのお礼

psgradeさん

理解が追い付いておらず申し訳ございません。
年月日のフィールドに数量制限をかけたいので、テーブル書き出し⇒フィールド名取得の方法を試してみます。
ありがとうございました。

お礼日時:2018/10/18 14:05

クロス集計を元にした選択クエリは、何で選択していますか?


商品で選択であれば、他のフィールは、全フィールドを意味する「*」で表す事ができます。
商品フィールドで選択し、この選択用欄は非表示にして、ダブらないようにします。
*を用いれば、フィールド名が動的に変化しても問題なく処理できます。
    • good
    • 0
この回答へのお礼

psgradeさん

ご回答ありがとうございます。

>クロス集計を元にした選択クエリは、何で選択していますか?
[2017/03/31][2018/03/31]
というように名前で指定していますので、
基準日を変えた際は現状は手でひとつずつ修正して対応しています。

お礼日時:2018/10/18 13:28

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A