- ベストアンサー
ACCESS クエリで 昇(または降)順に並べ替えたデータ に昇(または降)順に1,2,3・・・と番号を振る方法
ACCESSプログラミングで分からないことがあります。 クエリを使って データの昇(または降)順に順に並べ替えはできますが 並べ替えた順に番号を振るには どのようにすればよいのでしょうか? 例えば 10個ほどの 数値を持つ データがテーブルにあるとして これをクエリで昇(または降)順に並び替えることは簡単ですが この順番に 1,2,3・・と番号を これらの数値データに与えるには クエリをどういじればよいでしょうか? テーブルのインポートや VBA を使わずに クエリだけでやりたいのですが。お願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
例えば、 Code Value ------------- AAA 8 BBB 12 CCC 3 DDD 7 のようなテーブル T_TEST があったとすると、 順位:[DCount("Code","T_TEST","Value<=" & [Value]) という列を作れば、連番がつきます。 ただし、DCount() という関数を使っているので、レコード数が多い場合、スピードはかなり遅いと思います。 ちなみに、もし、レポートに表示させることが目的であれば、 レポートのコードに Private mlngOrder As Long Private Sub Report_Open(Cancel As Integer) mlngOrder = 0 End Sub Private Sub 詳細_Print(Cancel As Integer, PrintCount As Integer) mlngOrder = mlngOrder + 1 Me.テキスト13 = mlngOrder End Sub これだけ書いてやれば順位をつけることができます。
その他の回答 (1)
- tsukasa-12r
- ベストアンサー率65% (358/549)
そうそう、やってみるとわかると思いますが、同じ値が複数ある場合はうまくいきません。 同じ値が複数ある場合をきちんと処理させようとすると、やはり VBA か何か他の手を使わざるを得ないと思います。
お礼
kisigenn です つかさ様 ありがとうございました 驚きました ACCESS参考書を何冊か持っていますが DCount 関数は 指定された範囲に含まれるレコードの数を返す となっているだけで そのような使い方が あるとは思いませんでした ACCESS仲間も VBを使わなければ不可能 といってましたので。 助かりました。