プロが教える店舗&オフィスのセキュリティ対策術

Access2003使用

追加クエリを使い、キー設定してあるフィールドにデータを追加していきたいのですが、重複しているデータがあるのでこの重複しているフールドは追加先のオートナンバーフィールドで振られる番号を追加して追加したいと思います。

元データ
番号  商品  金額
123-222 だんご 100
123-223 アイス 200
123-222 だんご 150

追加先データ
番号  商品  金額 オートNO
123-333 赤飯  100  1
123-444 ご飯  200 2
123-555 五平餅 150 3
123-222/4 だんご 100 4
123-223  アイス 200 5
123-222/6 だんご 150 6
とやりたいのですが、良い方法は無いでしょうか?
よろしくお願いします。

A 回答 (1件)

このオートナンバーを使うのは、決定した仕様でしょうか。


私が考えれる範囲では、かなり厳しい仕様なのでは、と思ってしまいます。

番号  商品  金額 オートNO
123-333 赤飯  100  1
123-444 ご飯  200 2
123-555 五平餅 150 3

ここに

番号  商品  金額
123-222 だんご 100
123-223 アイス 200
123-222 だんご 150

を追加したら、

番号  商品  金額 オートNO
123-333 赤飯  100  1
123-444 ご飯  200 2
123-555 五平餅 150 3
123-222/4 だんご 100 4
123-223  アイス 200 5
123-222/6 だんご 150 6

に、ということですよね。

さらに

番号  商品  金額
123-222 だんご 100
123-223 アイス 200
123-222 だんご 150

を追加したらどうなるのでしょう。

番号  商品  金額 オートNO
123-333 赤飯  100  1
123-444 ご飯  200 2
123-555 五平餅 150 3
123-222/4 だんご 100 4
123-223  アイス 200 5 ←ここも書換え?
123-222/6 だんご 150 6
123-222/7 だんご 100 7 ←?
123-223/8 アイス 200 8 ←?
123-222/9 だんご 150 9 ←?

オートナンバーは、レコードを登録した際に確定する数値だった(?)と思うので、
1度仮の番号で登録、
オートナンバー値を取得、
重複番号をチェックし、
加工した番号で更新
以前のオートナンバーなし番号に対して更新処理+α
(α:他のテーブルデータの書き換えもあり?)
というような流れになるのかもしれません。
VBAでの記述になるのでしょうか。


以下のような変更では?

番号  細番 商品  金額
123-333 1  赤飯  100
123-444 1  ご飯  200
123-555 1  五平餅 150
123-222 1  だんご 100
123-223 1  アイス 200
123-222 2  だんご 150
123-222 3  だんご 100
123-223 2  アイス 200
123-222 4  だんご 150

「細番」は、番号が重複した際の数値
追加時に、番号がなかったら、細番=1
あったら、細番=Max(細番)+1 (その番号での細番最大値+1)
IIF で DLookup や DMax を使えば、クエリでもできると思います。

番号と細番で、主キーとするのでしょうか。

※ 何に使うテーブルなのかわからないので、これがいいのかわかりません。


識者の回答を待って下さい。

この回答への補足

早速の回答ありがとうございます。

返信が遅くなってすいません。

やりたいと思っていたことは
番号  商品  金額 オートNO
123-333 赤飯  100  1
123-444 ご飯  200 2
123-555 五平餅 150 3
123-222/4 だんご 100 4
123-223  アイス 200 5 ←そのまま
123-222/6 だんご 150 6
123-222/7 だんご 100 7 ←追加
123-223/8 アイス 200 8 ←追加
123-222/9 だんご 150 9 ←追加

以上のような内容にしたいです。
クエリでもVBAでも結構ですが、VBAがあまり使ったことが無いので理解できるかどうかです。

しかし仕様が大幅に変更になりこの作業自体無くなりました。
なので、一度締め切って、再度仕様が固まってわからないようでしたら質問させてもらいます。

補足日時:2009/03/05 16:03
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございました。

補足の内容により、とりあえずは締め切ります。

お礼日時:2009/03/05 16:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す