<HOME  <お願い事項  <Access2000 TOP   <Access97 TOP   <サイト内検索
 MS-Access2002チョ〜入門部屋>クエリを極める
  



 menu

31. 番号順に並ばない場合

今回使用しているテーブルでは、[番号]をテキスト型フィールドにしてます。
その上で、必ず2桁になるように入力しています。

仮に、テキスト型のフィールドに↓このように入力をした場合・・・・。

いったん閉じて、次にこのテーブルを開くと、↓こうなってます。

1の次が10になっちゃう・・・。バグではありません。これがふつうです。
データ型がテキスト型だからです。データ型が数値型なら、↓ちゃんとこう並びます。

では、なぜなんでしょう???
データ型がテキスト型のときは、「10」は「じゅう」ではなく「いちぜろ」です。数字も文字と同じ扱いなんですね。
なので、「いち」の次は「いちぜろ」、その次が「いちいち」になります。
これ、意味がわかんないとなるとちょっとやばいですよ。
落ち着いて考えてみてください。

ではどうすればいいのかというと、単なる「いち」ではなく、「ぜろいち」と入力しておけば、次は「ぜろに」「ぜろさん・・・」と、左側がゼロのレコードを先に並べ、次に左側が1のレコード・・・という具合に並びます。
会員番号とか社員番号とかは、桁をそろえるように考えておくといいと思います。
だいたいどこの会社でも、社員番号の桁はそろってるのかな・・・。

社員番号とか、会員番号とか、郵便番号とか、電話番号など、「計算をする必要のないフィールド」は、例え数字だけで構成されていたとしても、テキスト型で作成したほうがよいと、わたしはそう思います。コンピュータで数値を扱うのは実はとっても大変なので、できればテキスト型を基本にして考えていったほうがよいのです。
で、並べ替えをする必要がありそうな場合は、桁をそろえて入力することです。
それに・・・数値型だと、左側にゼロを入力しておくことができませんからね。あたりまえですけど・・・。
「0010000」って入力しておきたくても、数値型のフィールドだと「10000」ってなります。
これもあたりまえなんですよ。バグじゃありません。数値型だから、こうなるのです。

そのフィールドの中のデータをどういうふうに表示/出力させたいのか・・・これによって、フィールドのデータ型をきちんと決めておかないと、せっかくいろいろな配慮がなされてるのに宝の持ち腐れになってしまいます。テーブルのデータ型の特徴と役割、理解を深めていってくださいね。