• ベストアンサー

クエリでグループ毎に連番を振りたい

ACCESS2000です。 以下のようなテーブルがあります。 役職と氏名の2つフィールドがあります。 役職   氏名   役職連番 部長   山田   1 部長   蟹田   2 部長   長谷   3 係長   金本   1 係長   佐藤   2 という感じで、役職に対して連番を振りたいんですが こんのようことをする場合はどうすれば良いんですか?

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

  • ベストアンサー
  • redsky
  • ベストアンサー率18% (66/360)
回答No.1

多分、クエリーでは出来ないと思いますよ。 VBAで組むしかないと思います。 VBAでループやレコード更新の記述ができれば、さして難しくはないでしょう。 いわゆるコントロールブレイクの処理になります。

niiza
質問者

お礼

redskyさん、ご返事有り難うございました。 クエリでは無理なんですが・・・。 とってもすいませんが VBAでどういう感じで組むのか教えて頂けたら幸いです。

niiza
質問者

補足

ただ、元になるデータソース(役職と氏名が入っているフィールド)がクロス集計クエリで普通のテーブルではないんですが・・。

その他の回答 (2)

回答No.3

出来るかといえば、以下のクエリーで出来ます。 SELECT T.役職, T.氏名, Count(S.役職) AS 役職連番 FROM テーブル1 AS S, テーブル1 AS T WHERE S.役職=T.役職 And S.氏名<=T.氏名 GROUP BY T.役職, T.氏名 ORDER BY T.役職, T.氏名; ただ、このクエリだと係長→部長 に並びます。 ORDER BY T.役職 DESC, T.氏名としたら、部長→係長になりますが、他にも役職があったら意味ないです。 上級職から並べたい、とかならばその順番に、役職コードか何かが必要になります。 また、氏名の並びも元のテーブルと違ったものになります。

niiza
質問者

お礼

gonta_gomaさん、ご返事有り難うございました。 お陰様で出来ました。

  • o23
  • ベストアンサー率36% (64/175)
回答No.2

検索したところそれらしい内容がのってるページを見つけました 参考になりますか? ところで連番を付ける目的は何でしょう? 基本的に並び順を変更したりすると番号が変わってしまいます・・・

参考URL:
http://www.netpro.ne.jp/~niki/ac97/access97/nbr3.htm
niiza
質問者

お礼

o23さん、ご返事有り難うございました。 お陰様で出来ました。

関連するQ&A