- ベストアンサー
Accessでのクエリ・レポートの並び順について
すごく単純な質問なのですが、どんな決まりがあるのか知りたいのです。 たとえば、「社員一覧」テーブルを作りました。 そのテーブルを元にして「部署」昇順・「役職」昇順でクエリ「社員住所録」を作りました。 まず、このクエリの並び順も「部署」「役職」は当然きちんと並んでいるのですが、次の並び順というのが「何を基準に」並んでいるのかがわかりません。 テーブルを元にしているのだから、テーブルの主キーの「社員番号」順に並ぶような気がする(わたしは)のですが・・・。 そして、クエリ「社員住所録」を元にレポート「住所録印刷」を作ったところまた並びがクエリと異なります。 なぜ、こういうことが起こるのでしょうか? 皆様よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ご質問は、どうすれば第3キー以下の順序を思ったようにするかと言う質問でなく、第1キー+第2キーをOrderで指定したとき、第3キー以下の並び順に法則性があるかと言うことですか。 アクセス以外の経験からすると、 (1)基データの順序を保存している処理系(2) 偶然で決まり、法則性を期待できないものと2種あったように思います。使うソートのアルゴリズムにより(通常これは公表されていない)、基データの順序を指定キー外で保存しているケースと、めちゃめちゃに崩れるケースがあるようです。その処理系のマニュアル の隅をほじくるか、実行体験から知るよりほかないのでは 。数学の公式と同じで、アクセスで1例でも反証例があれば(1)ではないのでしょう。エクセルでは第3キーまでしか指定できないが、第4キーでまずソートして、ソートに入ると(1)なので4つ目のキーまでソートしたことになるという回答を見たことがあります。 私の言っていることはピント外れでしょうか。
その他の回答 (2)
- O_cyan
- ベストアンサー率59% (745/1260)
>どうして指定しないフィールドが並び変わるのでしょうか? AccessはDBMSでありDBMSではスキーマという定義構造を使ってフィールド定義や ソートや格納方法を定義しています。 概念スキーマ:ファイルのフィールド定義 外部スキーマ:ファイルの並び替えや抽出の仕方の関する定義 内部スキーマ:ファイルのディスクへの格納の仕方に関する定義 という感じですね。 スキーマに従って並び替えをしますがクエリを作りレコードを抽出・ソートをした ものを使ってレポートを作成してもレポートのソート順はレコードの内部コードが そのままでは優先されるためレポート自体にSQLでソートしたりする必要がある。 そのためレポート自体にもグループ化の設定があると思ったのですが。
お礼
むずかしいですね・・・ 私のレベルではないと感じました。 お手数をおかけしましたが、いろいろありがとうございました。
- O_cyan
- ベストアンサー率59% (745/1260)
レポートをデザインビューで開きメニューの表示にある 並び替え/グループ化の 設定で必要なフィールドを選んで昇順のソートをかけるようにすれば大丈夫です。 部署・役職・社員番号の順で昇順の設定にしてください。
補足
O_cyan様 専門家の方ということで、追加でお聞きしたいのですが・・・ 「修正する」方法については大変参考になりました。 そして、お伺いしたいのは どうして指定しないフィールドが並び変わるのでしょうか?
お礼
ご回答ありがとうございます。 まさしく私の知りたいことです! でも、ちょこっと難しくてよくわかりません・・・(涙) もし、おわかりであれば子供に説明するにご説明していただいてもよろしいでしょうか?