[AC2003]MDBのレコードの並び順について　は多分これで現在は複数に分かれているらしい

# 要旨
- Accessは入力順に並ぶわけではない。なにも設定しないと適当に並ぶ。
- なので設定する必要がある。
- ただし設定して保存される場合とされない場合がある。
- コピーすると並び順までコピーされる場合があり、意図しない並び方になることがある。

# 多分これが元の記事
多くの場所に引用されながら、アーカイブも存在しない謎のヘルプページ。
[ACC2003] MDB のレコードの並び順について
http://support.microsoft.com/kb/834927/ja
はこのレコード ソート 2003で世界中のドキュメントを不眠不休で捜索し、ようやくそれらしきものを発見した。
# このページの内容を翻訳してみる
[About sorting records (MDB) - Microsoft Office Access 2003 Documentation](https://documentation.help/MS-Office-Access-2003/acdccAboutSortingRecordsInTableQueryOrForm.htm)
About sorting records (MDB)
Microsoft Office Access 2003
##  1.並び替え（ソート）には２種類ある
実行できる並び替え（ソート）には 2 つのタイプがあります。 シンプルと複合です

## 2.２つの並び替えの特徴

 - シンプルタイプの並べ替えの場合は、 並べ替えフォーム ビュー 、 データシート ビュー 、または ページ ビュー で並べ替えを実行します。つまり、すべてのレコードを昇順または降順で並べ替えることができます (ただし、複数の 両方の並べ替え順序を使用することはできません)。 フィールドで
複合タイプな 並べ替え クエリ デザイン ビュー 、 高度なフィルター/並べ替えウィンドウ 、レポートのデザイン ビュー、ページ デザイン ビュー、ピボットテーブル ビュー、またはピボットグラフ ビューで並べ替えを行う場合は複合条件の並べ替えを実行できます。 つまり、あるフィールドではレコードを昇順で並べ替え、他のフィールドでは降順で並べ替えることができます。 
 -複合条件の並べ替え クエリのデザイン ビュー  高度なフィルター/並べ替えウィンドウ 、レポートのデザイン ビュー、ページ デザイン ビュー、ピボットテーブル ビュー、またはピボットグラフ ビューで並べ替えを行う場合、複雑な並べ替えを実行できます。 つまり、一部のフィールドではレコードを昇順で並べ替えたり、他のフィールドでは降順で並べ替えたりすることができます。しかし、１つ以上のフィールドに並べ替えを使うことはできません。

# 3.並べ替えを保存または再適用(re-applied)する方法はオブジェクトによって異なります。
 - フォーム、データシート、レポート、ピボットテーブル、またはピボットグラフの並べ替え順序の保存または再適用 
　Microsoft Access ではフォーム、データシート、レポート、ピボットテーブル、またはピボットグラフを保存するときのどの場合でも並べ替え順序が保存されます。 フォーム、データシート、ピボットテーブル、またはピボットグラフでは、そのオブジェクトまたはビューを再度開いたとき、またはフォームまたはデータシートに基づいて新しいフォームまたはレポートを作成したときに、Access によって並べ替えが自動的に再適用されます。 
## 3.レコードを並べ替えるときの考慮事項

- 並び順が保存された新しい フォーム または レポート、テーブル、クエリを基礎とする場合、 新しいフォームまたはレポートは並べ替え順序を継承します。
- Access は、クエリまたは詳細フィルターの結果の 1 つ以上のフィールドで最大 255 文字に基づいて並べ替えます。
    タブ)で指定した言語設定によって異なります 新しいデータベースの並べ替え順序] ボックス ( [オプション] ダイアログ ボックスの [全般] 並べ替え順序は、データベースの作成時に [ 。 データベースに、別の言語の並べ替え順序を使用するデータベースからのリンク テーブルが含まれている場合、Access では、テーブルが格納されているデータベースではなく、テーブルへのリンクを含むデータベースの並べ替え順序が使用されます。
新しいデータベースを作成するときに、新しいデータベースの並び順ボックス（全般タブのオプションダイアログボックスにあります）において、言語設定に基づく並び順を設定するときに、データベースに、別の言語の並べ替え順序を使用するデータベースからのリンク テーブルが含まれている場合、Access では、テーブルが格納されているデータベースではなく、テーブルへのリンクを含むデータベースの並べ替え順序が使用されます。
- クエリまたはフィルターのデザイン グリッドにフィールド リストのアスタリスクが含まれている場合は、並べ替えるフィールドをデザイン グリッドに追加しない限り、デザイン グリッドで並べ替え順序を指定できません。
- 日付と時刻を早い順に並べ替えるには、昇順を使用します。 降順を使用して、後から先に並べ替えます。
- フィールドに格納された数値は テキスト 、数値ではなく文字列として並べ替えられます。 したがって、数値順に並べ替えるには、すべてのテキスト文字列が同じ長さであり、短い数値の先頭にゼロが埋め込まれている必要があります。 たとえば、テキスト文字列「1」、「2」、「11」、および「22」を昇順に並べ替えた結果は、「1」、「11」、「2」、「22」になります。 文字列を適切にソートするには、1 桁の数字の先頭にゼロを埋め込む必要があります (「01」、「02」、「11」、「22」)。 値を含まないフィールドの場合 Null 関数を使用して文字列の数値に基づいて並べ替えることです 、別の解決策は、 Val 。 たとえば、Age 列が数値を含むテキスト フィールドである場合、[ フィールド] ] セルに並べ替え順序を指定すると、 セルに Val([Age]) を指定し、その [並べ替え レコードが正しい順序に配置されます。 フィールドのデータ型を Number 、 Currency 、または Date/Time Text フィールドに数値または日付のみを格納する場合は、フィールドが格納されているテーブルで に変更することを検討してください。 その後、フィールドで並べ替えると、先頭のゼロを必要とせずに、数値または日付が数値順または日付順に並べ替えられます。
フィールドに空白（Null値を含む）のあるフィールドについて昇順に並べ替えを実行すると、空白（Null値を含む）が最初にリストされます。フィールドに Null 値と 長さ 0 の文字列 値を含むフィールドが の両方を含むレコードが含まれている場合、 並べ替え順は Null値が最初に表示され、その直後にZeroLengthSringが続きます。
メモ、ハイパーリンク、または OLE オブジェクトのデータ型を持つフィールドの並べ替え

いかなる状況でもOLE オブジェクトを並べ替えることはできません 。また、 ページ内ではメモ フィールド や ハイパーリンク フィールドを並べ替えることはできませんが 、テーブル、クエリ、フォーム、またはレポートではこれらのフィールドを並べ替えることができる場合があります。そのためにはあなたは『並べ替えとグループ化]ダイアログボックスの[フィールド/Expression]ボックスにメモ フィールドまたはハイパーリンク フィールドの名前を入力する必要があります。なぜなら、メモまたはハイパーリンク フィールドは並べ替えが可能なフィールドのリストに表示されないからです。

注: メモ フィールドは、最初の 255 文字に基づいてのみ並べ替えられます。

##ピボットテーブル ビューまたはピボットグラフ ビューでのデータの並べ替えについて示します
## ピボットテーブル ビューの場合を示します
## 4.昇順または降順で並べ替えます
たとえば、売上列を昇順に並べ替えたり、従業員名の列を降順に並べ替えたりできます。
データを列ごとに個別に並べ替えることもできます。 列を並べ替える順序によって、データがどのように編成されるかが決まります。 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126919/82bd7727-5d12-c9fe-a718-c073eca6b01f.png)

この例では、データが営業担当者ごとに整理されています。 製品がアルファベット順になるように、製品列が最初に並べ替えられました。 営業担当者の列は 2 番目に並べ替えられました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126919/93c5d738-6b32-e4ec-47cc-bd7c6c8bc9ce.png)

複数の列を並べ替える場合は、最初に列を並べ替える順序を決定し、次に逆方向に作業して、最も外側の列を最後に並べ替えます。 たとえば、2 つの列を並べ替える場合は、どちらが外側の列でどちらが内側の列かを決定します。 まず内側の列を並べ替えてから、外側の列を並べ替えます。 営業担当者ごとに製品をアルファベット順にリストするには、まず内側の Product 列を並べ替えてから、外側の Salesperson 列を並べ替えます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126919/8419711d-0ace-d441-842b-3586128e4629.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126919/48527762-0ed1-5cde-41d2-725c05cdfee7.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126919/51be27d0-c53a-ba73-5e82-4a4eda9c0b2e.png)

## 5.カスタムの並べ替え順序を定義する場合を示します


昇順 または フィールド 降順での並べ替えが要件を満たさない場合は行フィールドまたは列 のカスタム順序を定義できます、。 たとえば、「役職」列の値を役職の年功順に並べて表示するとします。 列に — 副社長、ゼネラルマネージャー、マネージャー —の3つの値がある場合、昇順または降順で並べ替えても、データは希望する順序で表示されません。 この場合、Title 列の項目の順序を明示的に定義することができます。
カスタムの並べ替え順序を定義した後に項目がフィールドに追加された場合、新しい項目は並べ替えるまでフィールドの一番下に表示されます。

# 6.ピボットグラフ ビューの場合を示します
 ピボットグラフ ビューでは、数値データまたはアルファベット データを昇順または降順で並べ替えることができます。 たとえば、 数値売上データを含む系列を 並べ替えて、売上高の最高値から最低値までを表示したり、 会社名を含むカテゴリ フィールド を並べ替えて昇順 (A ～ Z) で表示したりできます。



次の例では、 系列フィールド が 売上金額で構成される 昇順で並べ替えられ、売上高が最低から最高まで表示されます。 カテゴリ フィールドが昇順で並べ替えられていた場合、営業担当者の名前がカテゴリ軸にアルファベット順で表示されます。



積み上げ棒グラフ、面グラフ、または縦棒グラフがある場合は、1 つの系列だけではなく積み上げ値全体の高さに基づいて数値的に並べ替えることができます。



- データ アクセス ページの並べ替え順序を保存する
もしあなたがデザインビューで（データアウトライン使用するか、DefaultSortプロパティを設定することにより）作成した場合、アクセスは並び順を保存します。しかし、ページビューで（並べ替えボタンを使用し）並び順を作成した場合、アクセスは並び順を保存しません。



 - シンプルタイプの並べ替えの場合は、 並べ替えフォーム ビュー 、 データシート ビュー 、または ページ ビュー で並べ替えを実行します。つまり、すべてのレコードを昇順または降順で並べ替えることができます (ただし、複数の 両方の並べ替え順序を使用することはできません)。 フィールドで
複合タイプな 並べ替え クエリ デザイン ビュー 、 高度なフィルター/並べ替えウィンドウ 、レポート デザイン ビュー、ページ デザイン ビュー、ピボットテーブル ビュー、またはピボットグラフ ビューで並べ替えを行う場合は複雑な並べ替えを実行できます。 つまり、あるフィールドではレコードを昇順で並べ替え、他のフィールドでは降順で並べ替えることができます。 
 - 複雑な 並べ替え クエリ デザイン ビュー 、 高度なフィルター/並べ替えウィンドウ 、レポート デザイン ビュー、ページ デザイン ビュー、ピボットテーブル ビュー、またはピボットグラフ ビューで並べ替えを行う場合、複雑な並べ替えを実行できます。 つまり、一部のフィールドではレコードを昇順で並べ替えたり、他のフィールドでは降順で並べ替えたりすることができます。しかし、１つ以上のフィールドに並べ替えを使うことはできません。

## 3.並べ替えを保存または再適用(re-applied)する方法はオブジェクトによって異なります。

 - フォーム、データシート、レポート、ピボットテーブル、またはピボットグラフの並べ替え順序の保存または再適用 
　Microsoft Access ではフォーム、データシート、レポート、ピボットテーブル、またはピボットグラフを保存するときのどの場合でも並べ替え順序が保存されます。 フォーム、データシート、ピボットテーブル、またはピボットグラフでは、そのオブジェクトまたはビューを再度開いたとき、またはフォームまたはデータシートに基づいて新しいフォームまたはレポートを作成したときに、Access によって並べ替えが自動的に再適用されます。 

 - データ アクセス ページの並べ替え順序を保存する
もしあなたがデザインビューで（データアウトライン使用するか、DefaultSortプロパティを設定することにより）作成した場合、アクセスは並び順を保存します。しかし、ページビューで（並べ替えボタンを使用し）並び順を作成した場合、アクセスは並び順を保存しません。

## 4.レコードを並べ替えるときの考慮事項

- 並び順が保存された新しい フォーム または レポート、テーブル、クエリを基礎とする場合、 新しいフォームまたはレポートは並べ替え順序を継承します。
- Access は、クエリまたは詳細フィルターの結果の 1 つ以上のフィールドで最大 255 文字に基づいて並べ替えます。
    タブ)で指定した言語設定によって異なります 新しいデータベースの並べ替え順序] ボックス ( [オプション] ダイアログ ボックスの [全般] 並べ替え順序は、データベースの作成時に [ 。 データベースに、別の言語の並べ替え順序を使用するデータベースからのリンク テーブルが含まれている場合、Access では、テーブルが格納されているデータベースではなく、テーブルへのリンクを含むデータベースの並べ替え順序が使用されます。
新しいデータベースを作成するときに、新しいデータベースの並び順ボックス（全般タブのオプションダイアログボックスにあります）において、言語設定に基づく並び順を設定するときに、データベースに、別の言語の並べ替え順序を使用するデータベースからのリンク テーブルが含まれている場合、Access では、テーブルが格納されているデータベースではなく、テーブルへのリンクを含むデータベースの並べ替え順序が使用されます。
- クエリまたはフィルターのデザイン グリッドにフィールド リストのアスタリスクが含まれている場合は、並べ替えるフィールドをデザイン グリッドに追加しない限り、デザイン グリッドで並べ替え順序を指定できません。
- 日付と時刻を早い順に並べ替えるには、昇順を使用します。 降順を使用して、後から先に並べ替えます。
- フィールドに格納された数値は テキスト 、数値ではなく文字列として並べ替えられます。 したがって、数値順に並べ替えるには、すべてのテキスト文字列が同じ長さであり、短い数値の先頭にゼロが埋め込まれている必要があります。 たとえば、テキスト文字列「1」、「2」、「11」、および「22」を昇順に並べ替えた結果は、「1」、「11」、「2」、「22」になります。 文字列を適切にソートするには、1 桁の数字の先頭にゼロを埋め込む必要があります (「01」、「02」、「11」、「22」)。 値を含まないフィールドの場合 Null 関数を使用して文字列の数値に基づいて並べ替えることです 、別の解決策は、 Val 。 たとえば、Age 列が数値を含むテキスト フィールドである場合、[ フィールド] ] セルに並べ替え順序を指定すると、 セルに Val([Age]) を指定し、その [並べ替え レコードが正しい順序に配置されます。 フィールドのデータ型を Number 、 Currency 、または Date/Time Text フィールドに数値または日付のみを格納する場合は、フィールドが格納されているテーブルで に変更することを検討してください。 その後、フィールドで並べ替えると、先頭のゼロを必要とせずに、数値または日付が数値順または日付順に並べ替えられます。
フィールドに空白（Null値を含む）のあるフィールドについて昇順に並べ替えを実行すると、空白（Null値を含む）が最初にリストされます。フィールドに Null 値と 長さ 0 の文字列 値を含むフィールドが の両方を含むレコードが含まれている場合、 並べ替え順は Null値が最初に表示され、その直後にZeroLengthSringが続きます。
メモ、ハイパーリンク、または OLE オブジェクトのデータ型を持つフィールドの並べ替え

いかなる状況でもOLE オブジェクトを並べ替えることはできません 。また、 ページ内ではメモ フィールド や ハイパーリンク フィールドを並べ替えることはできませんが 、テーブル、クエリ、フォーム、またはレポートではこれらのフィールドを並べ替えることができる場合があります。そのためにはあなたは『並べ替えとグループ化]ダイアログボックスの[フィールド/Expression]ボックスにメモ フィールドまたはハイパーリンク フィールドの名前を入力する必要があります。なぜなら、メモまたはハイパーリンク フィールドは並べ替えが可能なフィールドのリストに表示されないからです。

注: メモ フィールドは、最初の 255 文字に基づいてのみ並べ替えられます。

ピボットテーブル ビューまたはピボットグラフ ビューでのデータの並べ替えについて示します
ピボットテーブル ビューの場合を示します
# 昇順または降順で並べ替えます
たとえば、売上列を昇順に並べ替えたり、従業員名の列を降順に並べ替えたりできます。
データを列ごとに個別に並べ替えることもできます。 列を並べ替える順序によって、データがどのように編成されるかが決まります。 

この例では、データが営業担当者ごとに整理されています。 製品がアルファベット順になるように、製品列が最初に並べ替えられました。 営業担当者の列は 2 番目に並べ替えられました。
複数の列を並べ替える場合は、最初に列を並べ替える順序を決定し、次に逆方向に作業して、最も外側の列を最後に並べ替えます。 たとえば、2 つの列を並べ替える場合は、どちらが外側の列でどちらが内側の列かを決定します。 まず内側の列を並べ替えてから、外側の列を並べ替えます。 営業担当者ごとに製品をアルファベット順にリストするには、まず内側の Product 列を並べ替えてから、外側の Salesperson 列を並べ替えます。

# カスタムの並べ替え順序を定義する

昇順 または フィールド 降順での並べ替えが要件を満たさない場合は行フィールドまたは列 のカスタム順序を定義できます、。 たとえば、「役職」列の値を役職の年功順に並べて表示するとします。 列に — 副社長、ゼネラルマネージャー、マネージャー —の3つの値がある場合、昇順または降順で並べ替えても、データは希望する順序で表示されません。 この場合、Title 列の項目の順序を明示的に定義することができます。
カスタムの並べ替え順序を定義した後に項目がフィールドに追加された場合、新しい項目は並べ替えるまでフィールドの一番下に表示されます。

# ピボットグラフ ビューの場合

ピボットグラフ ビューでは、数値データまたはアルファベット データを昇順または降順で並べ替えることができます。 たとえば、 数値売上データを含む系列を 並べ替えて、売上高の最高値から最低値までを表示したり、 会社名を含むカテゴリ フィールド を並べ替えて昇順 (A ～ Z) で表示したりできます。


次の例では、 系列フィールド が 売上金額で構成される 昇順で並べ替えられ、売上高が最低から最高まで表示されます。 カテゴリ フィールドが昇順で並べ替えられていた場合、営業担当者の名前がカテゴリ軸にアルファベット順で表示されます。



積み上げ棒グラフ、面グラフ、または縦棒グラフがある場合は、1 つの系列だけではなく積み上げ値全体の高さに基づいて数値的に並べ替えることができます。

# 翻訳した結果、複数のページに分かれているようだ
[文字列値、数値、または日付の値に基づいてレコードを並べ替える - Microsoft サポート](https://support.microsoft.com/ja-jp/office/%E6%96%87%E5%AD%97%E5%88%97%E5%80%A4-%E6%95%B0%E5%80%A4-%E3%81%BE%E3%81%9F%E3%81%AF%E6%97%A5%E4%BB%98%E3%81%AE%E5%80%A4%E3%81%AB%E5%9F%BA%E3%81%A5%E3%81%84%E3%81%A6%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E4%B8%A6%E3%81%B9%E6%9B%BF%E3%81%88%E3%82%8B-be7cd4e2-ddda-44dc-ad5f-0fd8015008a8)
[ユーザー設定の順序でレコードを並べ替える - Microsoft サポート](https://support.microsoft.com/ja-jp/office/%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E8%A8%AD%E5%AE%9A%E3%81%AE%E9%A0%86%E5%BA%8F%E3%81%A7%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E4%B8%A6%E3%81%B9%E6%9B%BF%E3%81%88%E3%82%8B-af750db5-67df-4dee-8da8-cc3facc9a75e)
[Access デスクトップ データベースでピボットテーブル ビューまたはピボットグラフ ビューを作成する - Microsoft サポート](https://support.microsoft.com/ja-jp/office/access-%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88%E3%83%83%E3%83%97-%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%81%A7%E3%83%94%E3%83%9C%E3%83%83%E3%83%88%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB-%E3%83%93%E3%83%A5%E3%83%BC%E3%81%BE%E3%81%9F%E3%81%AF%E3%83%94%E3%83%9C%E3%83%83%E3%83%88%E3%82%B0%E3%83%A9%E3%83%95-%E3%83%93%E3%83%A5%E3%83%BC%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B-83e524df-dfbd-456d-9dd0-0a48c1aa6752)[Archive](https://web.archive.org/web/20231025103544/https://support.microsoft.com/ja-jp/office/access-%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88%E3%83%83%E3%83%97-%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%81%A7%E3%83%94%E3%83%9C%E3%83%83%E3%83%88%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB-%E3%83%93%E3%83%A5%E3%83%BC%E3%81%BE%E3%81%9F%E3%81%AF%E3%83%94%E3%83%9C%E3%83%83%E3%83%88%E3%82%B0%E3%83%A9%E3%83%95-%E3%83%93%E3%83%A5%E3%83%BC%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B-83e524df-dfbd-456d-9dd0-0a48c1aa6752)
これはAccss2010版で、以下が2013以降となる。
[ピボットテーブルまたはピボットグラフのデータの並べ替え - Microsoft サポート](https://support.microsoft.com/ja-jp/office/%E3%83%94%E3%83%9C%E3%83%83%E3%83%88%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%81%BE%E3%81%9F%E3%81%AF%E3%83%94%E3%83%9C%E3%83%83%E3%83%88%E3%82%B0%E3%83%A9%E3%83%95%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E4%B8%A6%E3%81%B9%E6%9B%BF%E3%81%88-e41f7107-b92d-44ef-861f-24430830450a)

また、公式ではないが、クエリとかで新しくコピーすると並び順が勝手に承継される点はこれだと思われる。
[クエリの並べ替え順序が変:Access(アクセス)の使い方](https://www.relief.jp/docs/000162.html)
>実務でクエリを操作するときには、ツールバーの［昇順で並べ替え］［降順で並べ替え］ボタンを使って並べ替えをよく行うはずです。

> その並べ替えの設定は［クエリプロパティ］−［並べ替え］欄に、「クエリ名.フィールド名」という形で保存されます。
その状態のクエリをコピーして新たなクエリを作成すれば、この［並べ替え］も含んでコピーしているわけですから、［並べ替え］に設定されているように並び替えを実行してしまい、結果［デザイングリッド］で設定されているのとは違う順序で並び替えが行われるという現象が発生します。

>［クエリプロパティ］−［並べ替え］欄に表示されている文字列を削除してクエリを実行すれば、［デザイングリッド］に指定したとおりに並び替えが行われるようになります。