• ベストアンサー

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

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

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

  • ベストアンサー
回答No.3

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を修正すればご自分の好きな順番にできます。) 以上ですが、ご参考になれば幸いです。

1000to920
質問者

お礼

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

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

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

1000to920
質問者

補足

木目細かくアドバイスいただいてありがとうございます。 いくつか不明な点があるのでお聞きしてよいでしょうか? <新しい商品コードテーブル(テーブルBとする)を作り、パソコン、デジタルカメラ、プリンタ、メディアのような商品に対応するコード(2-3桁程度か)を並べたい順の小->大になるようコードを考えて決めて、振る。 とありますが、このときは、テーブルBには商品コードと商品名フィールドを作成しておいてよいわけですよね。 <そして今あるテーブル(テーブルAとする)とテーブルBを商品名で結合(JOIN)して、テーブルAに商品コードのフィールドを加え、そのフィールドにテーブルBより商品コードをセットし、 このテーブルAに商品コードフィールドを加え、とありますがこれは結合後にフィールドを追加するのでしょうか?また、セットしとありますがセットするとは?? <別の並び順にしたいときは、テーブルBのコード体系を修正し、テーブルAとBの結合をやりなおす。 とありますが、もしコード体系を直す場合、結合はどうしてやりなおさなくてはいけないのでしょうか? 教えていただけますでしょうか?よろしくお願いいたします。

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.1

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

1000to920
質問者

お礼

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

関連するQ&A

  • ACCESS2007でテーブルの並べ替え方法は?

    ACCESS2007ですが FORMのプロパテイシートの「データ」タブの「並べ替え」項目で、 並べ替えをする項目を指定すれば昇順に並びますが、 降順に並べ替えをする方法を教えてください。 よろしくお願いします。

  • 他のユーザーが同じデータに対して同時に変更を試みて

    アクセスのテーブルで日付フィールドで昇順の並べ替えをする時は何も起こらないのに 降順の並べ替えをすると 「他のユーザーが同じデータに対して同時に変更を試みているので、プロセスが停止しました」 と言うエラーが発生します。 でも問題なく昇順に並べ替えが出来ます。 それに、このファイルを使っているのは私だけだし、他のファイルからテーブルリンク等はしていません。 実際に、 他のユーザーが同じデータに対して同時に変更を試みているのであれば なぜ昇順に並べ替えをしたときはエラーにならないのでしょうか? アクセス2010です。

  • ACCESSの並べ替え

    ACCESSで住所録を作っています。 データの並べ替えをしたいのです。 ただし昇順ではなく、「親戚」「ゴルフ」「その他」「会社」の順にしたいです。 以上4つのデータは「所属」フィールドに入力してあります。 なのでデザインクエリの「並べ替え」で「昇順」にすると 「会社(か)」「ゴルフ(ご)」「親戚(し)」「その他(そ)」の順になって さらに隣の「フリガナ」のところを「昇順」にすると それぞれの中で昇順になります。 さきほど書いた、「親戚」「ゴルフ」「その他」「会社」の順(自分の思う順番)に したいときはどのように設定すればよいのでしょうか? 教えてください。よろしくお願いいたします。

  • Accessのフォームとテーブルについて教えてください。

    Access2003を使用しています。 既存のフォームAにフィールド3個を増やしました。 フォームAはテーブル(1)と連動していました。 追加したフィールドはテーブル(6)のものです。 ところがフォーム上で追加フィールドに入力が出来なくなりました。3フィールドのうち、ひとつはコンボボックスです。表示はされますが確定ができません。 フォームAのSQLステートメントではテーブル(1)・(6)以外にテーブル(2)・(3)・(4)・(5)が結合されています。 フォームAからするとテーブル(2)・(3)・(4)・(5)のデータはIDの名称を見るための参照用です。 テーブル(6)は、追加フィールドのコンボボックスが参照用で、他の2追加フィールドは、フォームから入力してテーブル(6)に反映させたいものです。 テーブル(6)の画面では入力できます。 フォーム上からは入力できません。 設定が何か欠けているからでしょうか? 他の質問では2つのテーブルをひとつのフォームにする場合は、クエリを別に設けた方がいいとなっています。フォームが出来上がっているので、できればクエリを設けずに行いたいのですが、よくない方法でしょうか? 手順なども踏まえて教えていただけると助かります。 よろしくお願いいたします。

  • ACCESS2000 のテーブルが並べ替えできません

    おはようございます。 いつもありがとうございます。 ACCESSのテーブルを開くと、通常なら項目名を右クリックすると昇順、降順で並び替え ができますが そのメニューがグレーアウトでソートできないのです。 メニューバーの並べ替えの部分も同様にグレーアウトしています。 PC DELL DESKTOP OS WINDOWS2000 どうすれば並べ替えできるでしょうか?

  • ACCESS レコードの並び順について

    クエリで オートナンバー型を主キーにしている テーブルから値を抽出した時 回数(主キー) ・・・ --------------------- 12       ・・・  35       ・・・   44       ・・・ 85       ・・・ 101       ・・・ 61       ・・・ 64        ・・・ ↑のように60番台から70番台だけ 並び順がバラバラになっていたのですが これはACCESSでは普通なのでしょうか? (並べ替えで昇順、降順を指定すれば いいだけなのですが他のクエリでは 指定していなくてもテーブルで入力した順に 並んでいたのにこのクエリだけ並びが 変わっていたので気になりました)

  • アクセスのリストボックス内の順番について。

    アクセスのリストボックス内の順番を変更したいのですが、テーブルの中での順番と異なります。また、テーブル内の順番も昇順か降順しか選べないので、自由に順番を変更するにはどうしたらよいのでしょうか?他の方法があったらそれも教えてください。よろしくお願いいたします。

  • アクセスで片方のテーブルを優先して抽出する方法

    アクセスのデータ抽出で質問です。 画像のように「テーブル1」と「テーブル2」があり、クエリで「結果」のようにデータを抽出したいです。 一応出来てはいるのですが、もっとすっきりしたやり方があれば教えて下さい。 <やりたいこと> ・テーブル1とテーブル2のフィールド2を比較し、フィールド1を基準としてテーブル2にデータがあればそちらを抽出、なければテーブル1から抽出したい <現在のやり方> 1)テーブル1とテーブル2の差分クエリを作成 2)1)の差分クエリとテーブル2のユニオンクエリを作成 上記以外のスマートなやり方があれば是非知りたいと思っております。 よろしくお願いいたします。

  • Access 2007 で、「並べ替え」がうまくいきません。

    Access 2007 で、「並べ替え」がうまくいきません。 お世話になります。 職場のパソコンが新しくなり、Access 2002→2007にバージョン変更しました。 すると、「クエリ」での「並べ替え」がうまくいかなくなりました。 たとえば・・・   書物の種類番号 タイトル 発行年月日  というデータの並べ替えで、優先順位は、(1)書物の種類番号(昇順) (2)発行年月日(降順)としたいのですが、 (2)の発行年月日がぐちゃぐちゃになります。 2002の時はうまくいっていたのですが・・・。 なお、私はこのシステム作成者でなく、ただの入力者で、アクセス初心者です。 できましたら、初心者にもわかりやすく教えていただければ幸いです。

  • Access2013テーブル結合クエリ

    Access2013 住所録テーブルと面談備忘録テーブルを、氏名で結合したクエリを作成したいのですが。 この二つのテーブルの氏名が重なり合わないものもあります。 この際、重なり合わない氏名などもクエリのデータシートビューに表示させる方法を教えてください。 フィールドの抽出条件になにか記入するのかなと思っています。初心者です。 宜しくお願いします。

専門家に質問してみよう