こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Access97でテーブルのデータを並べ替える方法

Access97で(OSは98)テーブルで入力したデータをクエリーで並べ替えをかけるのですが、
そのフィールドのデータを昇順、降順以外で自分の思うような順番で
並べ替えることができますか?
例)
パソコン、デジタルカメラ、プリンタ、メディアのような順番で。。。
今後他のテーブルと結合するのでこれら以外にコード番号を入力する
フィールドを作り、これらをこの順番で入力すればよいのかもしれませんが
Excelのユーザー設定リストを並べ替えで使うような機能がAccessにあったかと思いまして。よろしくお願いいたします。

投稿日時 - 2002-08-26 14:22:18

QNo.343921

困ってます

質問者が選んだベストアンサー

No.2(imogasi)さんの回答に賛成です。

>Excelのユーザー設定リストを並べ替えで使うような機能

No.2(imogasi)さんの回答のように、Accessのようなデータベースでは、これもテーブルとして作成します。
そしてここで付けた商品コード(並べたい順番の数値)を元のデータベースにも入力します。
2つのテーブルからクエリを作成し、このクエリで昇順/降順の並び替えを行います。

簡単な例を示します。

元のテーブル(名称は仮に”商品テーブル”)
フィールドは、ID(オートナンバー型)主キー、商品GrID(数値型)、商品名(テキスト型)

商品コードのテーブル(名称は仮に”商品Grテーブル”)
フィールドは、商品GrID(数値型)主キー、商品Gr名(テキスト型)
このテーブルには例えば
商品GrID 商品Gr名
1    パソコン
2    デジタルカメラ
3    プリンタ
4    メディア
と入力しておきます。

リレーションシップの設定
ツールメニュー~リレーションシップで、商品Grテーブルと商品名テーブルの商品GrIDフィールドのリレーションシップを設定します。(1対多、連鎖更新)

クエリの作成
2つのテーブルからクエリを作成します。
並び替えを商品GrIDに昇順(できれば右にある商品名も昇順)
とすれば、商品Grテーブルの商品GrID順で並び替えできます。
(商品Grテーブルの商品GrIDを修正すればご自分の好きな順番にできます。)

以上ですが、ご参考になれば幸いです。

投稿日時 - 2002-08-26 16:11:09

お礼

ありがとうございました。例が入っていてよくわかりました。
連鎖更新の設定がされていれば、別に結合しなおす必要はないですよね。
ありがとうございました。
m(__)m

投稿日時 - 2002-08-26 16:38:13

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

新しい商品コードテーブル(テーブルBとする)を作り、パソコン、デジタルカメラ、プリンタ、メディアのような商品に対応するコード(2-3桁程度か)を並べたい順の小->大になるようコードを考えて決めて、振る。
パソコン10、デジタルカメラ20、プリンタ30、メディア40のように。
そして今あるテーブル(テーブルAとする)とテーブルBを商品名で結合(JOIN)して、テーブルAに商品コードのフィールドを加え、そのフィールドにテーブルBより商品コードをセットし、テーブルAを商品コードでソート(並べ替え)すれば良い。
そのためにデータベースソフトは威力を発揮する。
別の並び順にしたいときは、テーブルBのコード体系を修正し、テーブルAとBの結合をやりなおす。
本来は商品コードのフィールドがテーブルAにあって、別のテーブルBに商品コードと商品名があるところから、テーブルAへの入力が始まるように思いますが。

投稿日時 - 2002-08-26 15:18:11

補足

木目細かくアドバイスいただいてありがとうございます。
いくつか不明な点があるのでお聞きしてよいでしょうか?

<新しい商品コードテーブル(テーブルBとする)を作り、パソコン、デジタルカメラ、プリンタ、メディアのような商品に対応するコード(2-3桁程度か)を並べたい順の小->大になるようコードを考えて決めて、振る。
とありますが、このときは、テーブルBには商品コードと商品名フィールドを作成しておいてよいわけですよね。

<そして今あるテーブル(テーブルAとする)とテーブルBを商品名で結合(JOIN)して、テーブルAに商品コードのフィールドを加え、そのフィールドにテーブルBより商品コードをセットし、
このテーブルAに商品コードフィールドを加え、とありますがこれは結合後にフィールドを追加するのでしょうか?また、セットしとありますがセットするとは??

<別の並び順にしたいときは、テーブルBのコード体系を修正し、テーブルAとBの結合をやりなおす。
とありますが、もしコード体系を直す場合、結合はどうしてやりなおさなくてはいけないのでしょうか?
教えていただけますでしょうか?よろしくお願いいたします。

投稿日時 - 2002-08-26 15:51:57

ANo.1

エクセルの並び替えと同じようにクエリで出来ます。
優先させる順にクエリのフィールドを左に移動させてソートさせれば同様になります。
クエリは左から順にソートを優先しますので、それに合わせてフィールドを移動さ
せて昇順か降順を設定すればExcelのソートと同様に出来ますのでやってみてください。

投稿日時 - 2002-08-26 15:14:25

お礼

私の書き方が悪かったでしょうか。あくまで1つのフィールド内でパソコン、デジカメ。。。など、どうみても50音順で並び替えられない順番を自分の思うとおりにどう並べ替えるか、で悩みました。お時間をとっていただきありがとうございました。

投稿日時 - 2002-08-26 15:42:51

あなたにオススメの質問