• 締切済み

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 ----------------------------

みんなの回答

  • 007MUKADE
  • ベストアンサー率41% (286/694)
回答No.3

基本的な事項ですが・・・ >当該レコードと、次レコード ・・・・ はどの順で出てくるのでしょうか? 名前のアスキー順 ? では無いですね。 日付順でもなさそうですし・・・ 品名順でもなさそう・・・・・ これでは Accessで ”次のレコード ”が特定出来ませんが・・・・ 他に ”順番に並べられるフィイルド ”が有るなら 追加で書いて 下さい。  

AREARE123
質問者

補足

元データの順番について追記させて頂きます。 元データは「名前」の昇順、「購買日付」の昇順で並んでいます。 その後の「商品」は区々となっています。

回答No.2

ANo.1さんの番号の付け方と基本的には同じなんですが、質問の番号の付け方と若干違うようなので・・・ まず、元データをテーブル1として、 SELECT 名前, 購買日付 FROM テーブル1 GROUP BY 名前,購買日付 をクエリ1とします。 ANo.1さんのdcountのテーブル名の部分をクエリ1にして、新たなクエリを作る。 SELECT *, DCount("*","クエリ1","名前='" & [名前] & "' and 購買日付<#" & [購買日付] & "#")+1 AS 番号 FROM テーブル1 とすれば、質問の結果と同じくなるかと思います。

AREARE123
質問者

補足

ありがとうございます。 大変、役に立ちました!

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

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

AREARE123
質問者

補足

ありがとうございます! ただ、私がやりたかったのは、下記のように番号を付けたかったのです。 (「名前」「購買日付」が同一の場合、同一の番号を振り、 その次のレコードが同一顧客だった場合は、その次の番号を振る。) モジュール作成でも構いませんので、 分かるかたがいましたら教えてください。 =========================== 名前 購買日付 商品 番号 鈴木 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」としたい。 ============================

関連するQ&A

専門家に質問してみよう