私はこのトピックについて少し調査を行ってきましたが、実行可能な解決策、または実装するのに十分に説明されている解決策を見つけることができないようです。
Access でクロス集計クエリを作成したことがある場合は、Access では既定で列がアルファベット順に並べ替えられることをご存知でしょう。この順序を変更するには、 [プロパティ] ダイアログに移動し、希望する順序で列見出しを入力します。これは本当に苦痛ですが、ある回答者が別のサイトで述べたように、「それは一度だけの苦痛です!」
まあ...列が動的である場合、これは当てはまりません。私の場合、テーブルに 2 番目の列があり、そのフィールドを並べ替えに使用したい列見出しが含まれています。ソート列の詳細を説明列の前に追加できると思いますが(他の場所で提案されています)、これが問題を解決する最もエレガントな手段だとは思いません。並べ替え情報はシステム データであり、クロス集計のエンド ユーザーには役に立たないため、これは特に問題です。
この問題の解決策を知っている人はいますか? もしそうなら、クロス集計クエリの動的列を並べ替える手順を詳しく説明していただけますか?
この問題は、一般的に使用されている Access のすべてのバージョン (Access 2003 以降) で持続すると思いますが、念のため、Access 2010 を使用しています。
アップデート
問題を表現するのに役立つ非常に単純化されたサンプル データを次に示します。私のライブ シナリオには他にもいくつかの複雑な問題がありますが、このデータ セットは確かに的を射ています。
表 #1
これが見出しの由来です。はKey
列順序のソートで、Descriptions
はクロス集計で出力される見出しです。
+---------+---------------------------------------+
| Key | Descriptions |
+---------+---------------------------------------+
| Kfsg2E | Hey, this is accounting code X! |
+---------+---------------------------------------+
| abR3 | This is yet another accounting code! |
+---------+---------------------------------------+
| Gruu! | Yet another accounting code |
+---------+---------------------------------------+
テーブル #2これはデータのストアで
P_Key + F_Key
あり、2 つがテーブルの主キーです。
+---------+---------+-------+
| P_Key | F_Key | Value |
+---------+---------+-------+
| 1001 |Kfsg2E | 1.0 |
+---------+---------+-------+
| 1001 |abR3 | 1.1 |
+---------+---------+-------+
| 1001 |Gruu! | 1.2 |
+---------+---------+-------+
| 1002 |Kfsg2E | 2.0 |
+---------+---------+-------+
| 1002 |abR3 | 2.1 |
+---------+---------+-------+
| 1002 |Gruu! | 2.2 |
+---------+---------+-------+
| 2001 |Kfsg2E | 3.0 |
+---------+---------+-------+
| 2001 |abR3 | 3.1 |
+---------+---------+-------+
| 2001 |Gruu! | 3.2 |
+---------+---------+-------+
クロス集計結果 これらは、ユーザーが更新できるように Excel にエクスポートされます。
+---------+---------------------------------+--------------------------------------+-----------------------------+
| P_Key | Hey, this is accounting code X! | This is yet another accounting code! | Yet another accounting code |
+---------+---------------------------------+--------------------------------------+-----------------------------+
| 1001 | 1.0 | 1.1 | 1.2 |
+---------+---------------------------------+--------------------------------------+-----------------------------+
| 1001 | 2.0 | 2.1 | 2.2 |
+---------+---------------------------------+--------------------------------------+-----------------------------+
| 1001 | 3.0 | 3.1 | 3.2 |
+---------+---------------------------------+--------------------------------------+-----------------------------+
これは、Access がこれらの列を並べ替える方法です。ただし、次の表のようにする必要があります。これはTable #1
、 ではなくのキーでソートされていますDescription
。
+---------+--------------------------------------+-----------------------------+---------------------------------+
| P_Key | This is yet another accounting code! | Yet another accounting code | Hey, this is accounting code X! |
+---------+--------------------------------------+-----------------------------+---------------------------------+
| 1001 | 1.1 | 1.2 | 1.0 |
+---------+--------------------------------------+-----------------------------+---------------------------------+
| 1001 | 2.1 | 2.2 | 2.0 |
+---------+--------------------------------------+-----------------------------+---------------------------------+
| 1001 | 3.1 | 3.2 | 3.0 |
+---------+--------------------------------------+-----------------------------+---------------------------------+