• 締切済み

ACCESSの並び替え

5qooの回答

  • 5qoo
  • ベストアンサー率48% (20/41)
回答No.1

<並替用テーブル> 並替No 階層 自ID 親ID ソート順 001 1 1 - 1 002 2 2 1 1 003 3 5 2 1 004 3 6 2 2 005 3 7 2 3 006 2 3 1 2 007 3 8 3 1 008 3 9 3 2 009 3 10 3 3 010 2 4 1 3 011 3 11 4 1 012 3 11 4 2 013 3 11 4 3 このように別テーブルで管理して「並替No」のみ必要なテーブルに格納してはダメなのですか? もしくは、並び替えの時だけこのテーブルをリンクさせて「並替No」を呼び出すとか。 このようなデータには限りがあるのか、それとも無制限にでるかにより考え方も変わりますが、並び替えには絶対のルールがあると思うので可能な範囲で工夫していくしかないのではないでしょうか。

hkhkhk
質問者

お礼

ご回答いただきありがとうございます。 並べ替えNoを振るためには、並べ替えた後の状態が必要だと思いますが、現状は、上の並べ替える前の状態のテーブルしか存在せず、それを下の状態に並べ替えたいのです。 別の列を追加すること、別のテーブルを作成することには、何も制限がありませんが、そもそもが、並べ替えのときに、色々な条件を入れ子にしていく方法がわからないのです。

関連するQ&A

  • 【Access】条件によって並び替えの順序を変えたい

    【Access】条件によって並び替えの順序を変えたい メイン画面(フォーム)で検索条件を指定し、「検索」ボタンをクリック ↓ 検索結果(フォーム)を表示 しています。 メイン画面で並び替えを「昇順、降順、並び替えなし(ID順)」と選択(オプションボタン)しており、次のような処理をしています。 (1)クエリによる抽出(並び替え以外の条件で) (2)並び替えなしの場合はレコードソースを "SELECT * FROM クエリ" とする (3)並び替えありの場合はレコードソースに ORDER BY を追加 (2)、(3)の処理はVBAでおこなっています。 しかしながらこの方法では後々の画面遷移の際に不都合が生じてしまいました。 そこで条件によって並び替えの仕方を変えるところもクエリに含めたいと 思いましたが、方法がわかりません。 ご存知の方がいらっしゃいましたら、ご教示ください。

  • [ACCESS97]SQLの書き方

    グラフのレコードソースにクエリ・SQLを使用しています。データ入力チェックに使おうと思っています。妙なデータがはいった場合、グラフが乱れるのではないかと。 ソートは日付でしています。 それで、100レコードずつを順番に表示していきたいのですが、top値 だと最初からいくつ、、としか指定できません。これを、レコードの途中の任意の位置から取るにはどうしたらいいのでしょうか? IDとかのようにユニークな値でソートしているのであれば、大小関係で一発ですが、同じ値がいくつも存在する日付なもので困っています。 日付でソートしたものを配列に入れる、もしくは一度テーブルに書き出す等も考えているのですが、SQLでできたら助かります。 よろしくお願いします。

  • MySQL5.1で親ID毎に並び順を指定したツリー表示について

    id:自ID p_id:親ID sort:同じ親ID毎のソート順 の以下データを持つテーブルaがあるとします。 id|p_id|sort 1|0 |1 2|1 |2 3|1 |3 4|0 |2 5|4 |3 6|4 |2 7|5 |1 上記テーブルaから、SELECT文だけで 以下のような表示を行う事は可能でしょうか? 1 +-+-2 | +-3 4 +-+-6 +-5 +-7 並び順だけでも上記のように上から123465の順で取得できることでもOKです。

    • ベストアンサー
    • MySQL
  • SQL2008のデーターをAccess2007で利用する場合、並び替えと関数の設定についてご教示ください。

    (1) Viewで並び替えを設定してもAccessで開くとその並び替えが無視されID順になってしまいます。 (2) これまで、Access2007でクエリーに設定していた関数 (Pmt)はどこにどのように設定すればよいのでしょうか? よろしくお願いします。

  • Access #エラーについて

    Access初心者です。 よろしくお願いいたします。 [前提]  テーブルA のIDに紐づけてクエリBの数値をクエリCで反映させたい。  〈詳細データ〉   ・テーブルA    [ID] [名称]       1   あ     2   い     3   う     4   え     5   お   ・クエリB    [ID] [数値]     2   10     3   20     5   40   ・クエリC    [ID]  [名称] [数値]     1    あ  #エラー     2    い   10     3    う    20     4    え  #エラー     5    お   40   ・”テーブルAの[ID]”の全レコードと”クエリBの[ID]”の同じ結合フィールドだけを含めてリレーションを行っている。    ・クエリCの算式: IIf(IsError([クエリB].[数値]),0,[クエリB].[数値])  [質問]    ・クエリCの『#エラー』部分を0にしたいのですが、何か良い方法はございませんでしょうか。   ・そもそも上記のロジックは無理がありますでしょうか。    アクセスはあまりいじったことがございません。ご回答いただけますと幸いです。   よろしくお願いいたします。

  • Access リレーションのある項目並び替え

    一人で、初めてAccessに取り組んでいます。 相談できる人が周りに居ないので、助けてください。 2つのテーブルがあります。 テーブルデータA    ヘッダーID(オート)    グループ名    区分    文書名 テーブルデータB    区分ID(オート)    区分インデックス    部品名 テーブルデータA”区分”と、テーブルデータB”区分インデックス”が、リレーションシップで繋がっています。 テーブルデータAを、”区分”の昇順で並び替えをして、フォーム上で表示させたいのですが、 フォーム上で表示させる以前に、データシートビューで確認するも、並び替えが出来ません。 テーブルデータBをデータシートビューで表示すれば、”区分インデックス”順に並ぶのですが、 テーブルデータAをデータシートビューで表示すると、昇順も降順も変化なく、”区分”で並び替えができません。(バラバラの状態です) ちなみに、”区分”及び”区分インデックス”は、テキスト型12桁です。 リレーションシップが付いてる項目は、並び替えができないのでしょうか?

  • 並び替えフィールドをコマンドボタンで変更したい

    帳票フォームを使ってデータを一覧表示していますが、フォームにコマンドボタンを配して、並び替えのフィールドを変更したいと思っています。 [データベースオブジェクト] ・テーブル名:偉人賢人テーブル「フィールド:ID、国、名前、分野、功績情報」 ・フォーム名:偉人賢人一覧フォーム ・レコードソース名:偉人賢人クエリ「名前フィールドの並び替え(昇順)」 ・クエリソース:偉人賢人テーブル [フォームの配置] ・詳細欄:ID、国、名前、分野 ・ヘッダー:功績情報 以上ですが、宜しくお願いします。

  • Accessクエリでのグループ化

    Accessクエリでのグループ化 以下の2つのテーブルが有ります。 ■社員テーブル ID 名前 1 Aさん 2 Bさん 3 Cさん 4 Dさん 5 Eさん ■受付テーブル ID 受付内容 受付日   社員ID 1  xxxxx 2010/3/1   1 2 xxxxx 2010/3/20   3 3 xxxxx 2010/4/10   2 4 xxxxx   2010/4/11  5 5 xxxxx 2010/4/15  1 6 xxxxx 2010/4/30  2 7 xxxxx 2010/5/3  4 そこで社員毎の受付数をカウントしたいと思っています。 ※受付日が2010/4/1以上5/1未満 名前 受付回数 Aさん 1 Bさん 2 Cさん 0 Dさん 0 Eさん 1 となるイメージです。 しかし、実際にクエリを作ると結果が 名前 受付回数 Aさん 1 Bさん 2 Eさん 1 と、なってしまいます。。 名前:グループ化 受付テーブルのID:カウント 受付日:>=2010/04/01 and <2010/05/01 ※社員テーブルの『ID』と、受付テーブルの『社員ID』を  紐つけており、結合プロパティでは『社員テーブルの  全レコードと受付テーブルの同じ結合フィールドのレコード  だけを含める』としております。 あらかじめ、受付テーブルで受付期間の条件でクエリ を作成しておき、それと社員テーブルを紐つけた場合は イメージ通りの結果になるのですが、1つのクエリで 上記イメージでの結果を表示したいと思ってます。 可能でしょうか? ご教授願います。

  • データの並び替え

    こんにちは。 AccessVBAでつまづいてしまったので、ご教授お願いします。 以下にプログラムの動作手順を書きます。 1、CDに入っている4つのCSVファイルをそれぞれ別のテーブルにインポート。 2、その4つのテーブルのデータをグループ化して「wkマスタ」に追加クエリを利用して追加。 3、全て追加されたら、商品ID の昇順で「wkマスタ」のレコードを並び替え。 3の並び替えを下のように書きました。 DoCmd.RunSQL "SELECT 商品ID,商品名称カナ,商品名称漢字 FROM wkマスタ ORDER BY 商品ID ASC;" そしたら「"RunSQL/SQLの実行"アクションを実行するには、 SQLステートメントからなる引数を指定する必要があります」 と注意されました。 これはどういう意味でしょうか?またどうしたら問題なく並べ替えできますか?教えてください。

  • Access2003 一つのクエリで結果を出したい

    お世話になります。 下記テーブルを紐付けてクエリを作成します(Access2003)。 受注テーブル  ・ID  ・コード  ・数量 検品テーブル  ・ID  ・コード  ・検品フラグ マスターテーブル  ・ID  ・コード  ・印刷フラグ 検品テーブルのレコードは、受注テーブルの数量合計が展開されたレコード数となります。例えば、AAAというコードで数量合計が8の場合、検品テーブルではAAAのレコードが8レコード存在することになります。 但し、マスターテーブルの印刷フラグがYesとなっているものは、数量がいくつあっても受注テーブルは1レコード作成されます(数量合計で展開しない)。  受注テーブル   ID コード 数量   1  AAA   5   2  AAA   3   3  BBB  100  検品テーブル   ID コード 検品フラグ   1  AAA   Yes   2  AAA   Yes   3  AAA   Yes   4  AAA   Yes   5  AAA   Yes   6  AAA   Yes   7  AAA   No   8  AAA   Yes   9  BBB   Yes  マスターテーブル   ID コード 印刷フラグ   1  AAA   No   2  BBB   Yes こんな感じです。 そこで各テーブルをコードで紐付けてグループ化し、検品フラグYesで抽出した状態で以下の結果を表示出来るようにしたいところです。 コード 数量合計  AAA   7  BBB  100 要するに印刷フラグがYesのものは受注テーブルの数量合計を表示し、それ以外は検品された数を表示させたいと考えています。 あらかじめ受注テーブルでコードでグループ化し、数量の合計を算出するクエリ(※1)を作成し、そのクエリと検品テーブル、マスターテーブルを紐付けたらうまく表示出来ました。 ※数量合計はIIFで印刷フラグ=Yesの場合は※1の数量合計を、Yesではない場合は検品テーブルのレコードカウント数を表示。 しかし、できれば一つのクエリで上記の結果を表示させたいのですが、可能なのでしょうか。 ご教授お願い致します。