ちょろっとAccessメモ。
選択クエリの結果に連番を振りたいときの技。
ーーーーーーー
顧客テーブル
ーーーーーーー
顧客コード
氏名
性別
ーーーーーーー
というテーブルから、性別が女性の人だけを選択して、連番をふります。
まずは普通に、女性だけを抜き出す選択クエリを作ります。
で、一番右の空いた枠にでも、↓こんなのを入れます。
連番: DCount(”*”,”顧客テーブル”,”[性別]=’女’” & ” AND [顧客コード]<=” & [顧客テーブル].[顧客コード])
ちょっと長くて、折り返されて表示されてるかもしれませんが、クエリには、
折り返さないで一行で書いてくださいませ。
| l |
フィールド |
| |
顧客テーブル.* |
| |
性別 |
| |
連番:Dcount(略) |
| |
| | |
テーブル |
| |
顧客テーブル |
| |
顧客テーブル |
| |
|
| |
| | |
抽出条件 |
| |
|
| |
=”女” |
| |
|
| |
これを実行すると、
| | |
顧客コード |
| |
氏名 |
| |
性別 |
| |
連番 |
| |
| | |
2 |
| |
山田○子 |
| |
女 |
| |
1 |
| |
| | |
5 |
| |
鈴木△子 |
| |
女 |
| |
2 |
| |
| | |
12 |
| |
佐藤□子 |
| |
女 |
| |
3 |
| |
というような結果が返る、、、ハズです!
[性別が女]で、[顧客コードは私と同じか私より小さい]というレコード数を、
順番にカウントしていっています。これで、必然的に連番になるわけです。
顧客コードのような、ユニークのキーがあるときにしか使えません。
大小を比べくてはいけないので、数値である必要もあるかも。
※コードがテキスト型の数字ってときは、Cintを付ければダイジョブです。
大概の場合は、テーブルにIDやコードの類があると思うので、結構使えます。