- 締切済み
ACCESSで当該レコードの特定カラムと、次レコード特定カラムの比較方法
ACCESSで当該レコードの特定カラムと、次レコードの特定カラムの内容を比較して、フラグ(厳密には数値)を立てるにはどうしたらいいのでしょうか? 下記の「DATA」を例に説明すると、 当該レコードと、次レコードの「名前」が同一の場合、 購買日付の昇順に番号を1から順番に付けたい。 ※但し「名前」が一緒で「購買日付」が等しい場合は、 同じ番号を付けた。 モジュールを作成することになっていいので、 番号を付けるやりかたが分かりましたら教えて下さい。 -DATA----------------------- 名前 購買日付 商品 佐藤 2008/02/01 菓子A 佐藤 2008/02/03 菓子B 佐藤 2008/02/04 菓子C 佐藤 2008/02/10 菓子D 金子 2008/02/01 菓子X 鈴木 2008/02/01 菓子B 鈴木 2008/02/03 菓子C 鈴木 2008/02/03 菓子D 鈴木 2008/02/05 菓子D 加藤 2008/02/01 菓子D 加藤 2008/02/01 菓子E 加藤 2008/02/02 菓子D ---------------------------- (↓やりたいこと) -番号を付けたい------------- 名前 購買日付 商品 佐藤 2008/02/01 菓子A 1 佐藤 2008/02/03 菓子B 2 佐藤 2008/02/04 菓子C 3 佐藤 2008/02/10 菓子D 4 金子 2008/02/01 菓子X 1 鈴木 2008/02/01 菓子B 1 鈴木 2008/02/03 菓子C 2 鈴木 2008/02/03 菓子D 2 鈴木 2008/02/05 菓子D 3 加藤 2008/02/01 菓子D 1 加藤 2008/02/01 菓子E 1 加藤 2008/02/02 菓子D 2 ----------------------------
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- 007MUKADE
- ベストアンサー率41% (286/694)
基本的な事項ですが・・・ >当該レコードと、次レコード ・・・・ はどの順で出てくるのでしょうか? 名前のアスキー順 ? では無いですね。 日付順でもなさそうですし・・・ 品名順でもなさそう・・・・・ これでは Accessで ”次のレコード ”が特定出来ませんが・・・・ 他に ”順番に並べられるフィイルド ”が有るなら 追加で書いて 下さい。
- fumufumu_2006
- ベストアンサー率66% (163/245)
ANo.1さんの番号の付け方と基本的には同じなんですが、質問の番号の付け方と若干違うようなので・・・ まず、元データをテーブル1として、 SELECT 名前, 購買日付 FROM テーブル1 GROUP BY 名前,購買日付 をクエリ1とします。 ANo.1さんのdcountのテーブル名の部分をクエリ1にして、新たなクエリを作る。 SELECT *, DCount("*","クエリ1","名前='" & [名前] & "' and 購買日付<#" & [購買日付] & "#")+1 AS 番号 FROM テーブル1 とすれば、質問の結果と同じくなるかと思います。
補足
ありがとうございます。 大変、役に立ちました!
- CHRONOS_0
- ベストアンサー率54% (457/838)
VBAは要らないですね クエリで下のような式フィールドを作ります 番号: DCount("*","テーブル名","名前='" & [名前] & "' and 購買日付<#" & [購買日付] & "#")+1 名前 購買日付 商品 番号 佐藤 2008/02/01 菓子A 1 佐藤 2008/02/03 菓子B 2 佐藤 2008/02/04 菓子C 3 佐藤 2008/02/10 菓子D 4 金子 2008/02/01 菓子X 1 鈴木 2008/02/01 菓子B 1 鈴木 2008/02/03 菓子C 2 鈴木 2008/02/03 菓子D 2 鈴木 2008/02/05 菓子D 4 加藤 2008/02/01 菓子D 1 加藤 2008/02/01 菓子E 1 加藤 2008/02/02 菓子D 3
補足
ありがとうございます! ただ、私がやりたかったのは、下記のように番号を付けたかったのです。 (「名前」「購買日付」が同一の場合、同一の番号を振り、 その次のレコードが同一顧客だった場合は、その次の番号を振る。) モジュール作成でも構いませんので、 分かるかたがいましたら教えてください。 =========================== 名前 購買日付 商品 番号 鈴木 2008/02/01 菓子B 1 鈴木 2008/02/03 菓子C 2 鈴木 2008/02/03 菓子D 2 鈴木 2008/02/05 菓子D 4 ←「4」ではなく「3」としたい。 加藤 2008/02/01 菓子D 1 加藤 2008/02/01 菓子E 1 加藤 2008/02/02 菓子D 3 ←「3」ではなく「2」としたい。 ============================
補足
元データの順番について追記させて頂きます。 元データは「名前」の昇順、「購買日付」の昇順で並んでいます。 その後の「商品」は区々となっています。