Microsoft Access Club >AccessTips >このページ >次頁 < 前項  サイト内検索


昇順、降順の際、注意が必要なテキスト型:AccessTips066



テーブルデータ、クエリデータ、フォームの表形式で、社員番号順に昇順設定を行ったら、並び方がバラバラだったという経験をお持ちの方は、沢山いらっしゃるはずです。 この原因はデータ型に起因する場合があります。今回はこのような事例を取り上げます。

並び替えの実例

下記のテーブルをご覧下さい。社員IDフィールドはテキスト型です。

社員ID 社員名
121 花園 正一
626 青山 悟
1002 室蘭 聡史
962 郡町 京子
14 佐久間 敏一
826 ヘンダーソン
321 四日市 名児耶

これを社員IDフィールドで昇順で並び替えると、下記のようになります。

社員ID 社員名
1002 室蘭 聡史
121 花園 正一
14 佐久間 敏一
321 四日市 名児耶
626 青山 悟
826 ヘンダーソン
962 郡町 京子

社員IDが14の社員をトップに並び替えが実施されると思っていましたが、何と1002の社員がトップに来ています。

原因追求

原因は社員IDがテキスト型フィールドであるからです。数字があれば数値型と思いがちですが、今回の場合は違っていました。

  1. テキスト型の並び替えでは、数字の左側1桁をまず判断します。
  2. 1の位が同じ社員IDが3つあります。1002と121と14です。
  3. 次に、左側2番目の桁を判断します。
  4. ここで差がつきました。つまり、0、2、4と並び替えの順位が決まったんです。
  5. 1002、121、14がベスト3です。
テキスト型の判断の基準

テキスト型で並び替えの判断の基準は、数字(0〜9)、英字、ひらがな、カタカナ、漢字の順になります。大文字、小文字、全角、半角とこれらの中でも細部に別れますから、ちょっとややっこしいですね。 参考までに、下記のように社員IDフィールドを変更し昇順で並び替えると違いがよく分かります。

社員ID 社員名
21 室蘭 聡史
A21 ヘンダーソン
a21 佐久間 敏一
あ21 四日市 名児耶
ア21 郡町 京子
ア21 花園 正一
亜21 青山 悟
社員IDフィールドデータの修正

テキスト型を並び替えるとは、充分注意が必要です。しかし、テーブルデータを下記のようにすると、テキスト型であっても何ら問題がありません。

社員ID 社員名
00014 佐久間 敏一
00121 花園 正一
00321 四日市 名児耶
00626 青山 悟
00826 ヘンダーソン
00962 郡町 京子
01002 室蘭 聡史

そうです、全ての桁数を揃えることです。

 2002/5/23

ページの先頭へ 前ページへ戻る

 


昇順、降順の際、注意が必要なテキスト型:AccessTips066


 

-Microsoft Access Club-