11/28/2021

Access。クエリ。並べ替えは左側のフィールドに優先順位が高い設定になっています。【SORT】

Access。クエリ。並べ替えは左側のフィールドに優先順位が高い設定になっています。

<Access>

Excelだと、データタブの「並べ替え」をつかうことで、複数条件であっても、視覚的にもわかりやすく設定することができるようになっています。


ではAccessではどうなのでしょうか?


次のテーブルをつかって確認していきましょう。


このテーブルを、

「得点を降順で並べ替えを行います。もし、得点が同じだったら、ふりがなを昇順で並べ替えを行います。」

という処理をしたいわけです。


つまり、

優先順位 第一位が 得点を降順

優先順位 第二位が ふりがなを昇順

ということです。


並べ替えを行うにも、クエリをつくりますので、作成タブの「クエリデザイン」をクリックします。


今回使用するテーブルを選択して、必要なフィールドを設定していきます。


今回は、「NOフィールド」は除いていますが、あっても問題はありません。

並べ替えの設定をしますので、ふりがなフィールドには昇順を、得点フィールドには降順の設定をしました。


実行して、どのように表示されるのかを確認してみましょう。


得点フィールドが降順というのが優先順位の第一位なのですが、なっていません。


よくみると、ふりがなフィールドは五十音順の昇順になっていることが確認できます。


要するに、リクエスト通りになっていません。

原因は、クエリ。

並べ替えの昇順・降順設定そのものは問題ないのですが、左側にあるフィールドの並べ替えを優先させるようになっています。


なので、ふりがなフィールドのほうが、左側にあるので、ふりがなフィールドが、優先順位 第一位で処理されてしまったというわけです。


そこで、クエリを次のように修正します。


変更点は、左側のふりがなフィールドの並べ替えを解除します。


そのかわり、一番右側に、新しくふりがなフィールドを追加します。

追加したふりがなフィールドの並べ替えに昇順とします。


なぜ、新しくふりがなフィールドを設定したのかというと、並べ替えの優先順位が左側という原則があるので、得点フィールドの左側にふりがなフィールドがあると、うまく並べ替えができません。


そこで、右側にダミーとして設定し、そのフィールドに並べ替えの設定をしています。


では、改めて実行して確認してみましょう。


リクエスト通りに、得点が降順で、ふりがなが昇順で並べ替えが行われていることが確認できました。

このように、単純な並べ替えかもしれませんが、少し注意が必要かもしれませんね。