• 締切済み

ACCESSのDMAXについて

ACCESSでの、クエリーの書き方での質問です。 やりたいことは、テーブル中のデータから、最大値を求めて、+1して、レコードを追加したいのです。 商品番号、商品名、番号というテーブルから、商品番号と商品名が一致した中から、 最大の個数を求めるDMAX関数の書き方をどのようにしたらよろしいでしょうか? イメージ的には、 商品番号 商品名 番号 00001   鉛筆    2 00001   鉛筆    3 00001   鉛筆    1 00002   鉛筆    4 となっていた場合、商品番号に「00001」、商品名に「鉛筆」を与えたとき、答えの番号「3」を求めます。 イベントプロシージャではなく、クエリーの画面のフィールド式です。 追加クエリーで、その求めた「3」に+1して、番号を「4」にして新しいレコードを書き込む・・・ なんていうことは可能でしょうか。 VBAでやるのは、なんとなくわかるのですが、クエリーの画面での書き方がわかりません。 (それとも出来ないものなのでしょうか?)

みんなの回答

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.1

クエリの中にDMaxを入れるのはあまりお勧めできませんね。 たとえば、別途 SELECT MAX([番号]) FROM 商品 GROUP BY [商品番号], [商品名]; っていうクエリを作っておいて、そのクエリに対して[商品番号], [商品名]でリレーションを張れば仰る機能が実現できると思います。 もしくは、SQLのFROM句の中に()や[]で括って別のクエリを入れ子にすることもできます*ので、これを利用すればひとつのクエリで上記の機能を実現することができます。 *(が、これってAccessにおいては裏技的な方法のようです。)

SHINYA-W
質問者

お礼

回答、ありがとうございます。

SHINYA-W
質問者

補足

なんとかなりそうな気配です。 SQLについては現在勉強中でして、別に質問をさせてもらってます。

関連するQ&A