プロが教えるわが家の防犯対策術!

お世話になります。
以下のようなテーブルがあります。
区分 コード
AA  I001
AA  I002
AA  I003
BB  I004
BB  I005
 ・   ・
 ・   ・
FF  I012

例えば、フォーム上で数量「3」と入力され、「出力」ボタンが押されたときに、
上記のテーブルのレコードが3セットあるテーブルを作成したいと考えて
おります。

区分 コード
AA  I001
AA  I002
 ・   ・
 ・   ・
FF  I012
AA  I001
AA  I002
 ・   ・
 ・   ・
FF  I012
AA  I001
AA  I002
 ・   ・
 ・   ・
FF  I012

となるイメージです。

まっさらのテーブルを作成し、ループで回しつつレコードを追加していけば
よいかと思うのですが、1回のテーブル作成クエリの実行で作成することは
可能でしょうか。

※上記テーブルが出来たら、そのテーブルをソースとしたレポートでラベルを
  印刷させます。

ご教授の程、宜しくお願い致します。

A 回答 (2件)

テーブルを作成しないといけないですか?



以下は、クエリで3倍にするものになります。

・準備するもの(連番のテーブル)
テーブル名「T連番」
フィールド:連番(長整数:主キー)

連番には、1~必要最大数の数値を入れておきます。


元のテーブル名を ★★ と仮定した場合、
クエリのSQLビューに以下を記述すると3倍になります。

SELECT * FROM ★★, T連番 WHERE 連番<=3;

5倍にするのなら 連番<=3 → 連番<=5 とすれば良いです。
    • good
    • 0
この回答へのお礼

30246kikuさま

早速のご回答ありがとうございました。
教えて頂いた通りに試してみたところ、うまくいきました。

勉強不足で大変申し訳ないのですが、このクエリはどういう仕組みで各レコードが3つずつになっているのでしょうか。
当該クエリをデザインで見てみましたが、理解できず。。

度々で申し訳ございませんが、ご教授頂けると幸いです。
宜しくお願い致します。

お礼日時:2014/07/14 19:08

#1です



以下を参照してください

http://ja.wikipedia.org/wiki/%E9%96%A2%E4%BF%82% …

この中の、S:E だけの E=1,2,3 の場合を考えてみてください。
「T連番」の「連番」が、S:E に相当して、用意した連番の <=3 を使うものになります。


※ これで回答になっていたでしょうか
    • good
    • 0
この回答へのお礼

度々のご回答ありがとうございます。
私にはちょっと難しいです。。(笑

要するに★★テーブルの内容×連番の数(例だとT連番の連番が1~10まで登録されていたとして、<=3 と条件付けすることにより1~3とした)ってことですよね。

なので、結果的に★★テーブルの内容が3セット

区分 コード 連番
AA  I001  1
 ・   ・   ・
 ・   ・   ・
FF  I012  1
AA  I001  2
 ・   ・   ・
 ・   ・   ・
FF  I012  2
AA  I001  3
 ・   ・   ・
 ・   ・   ・
FF  I012  3

というより、

区分 コード 連番
AA  I001  1
AA  I001  2
AA  I001  3
BB  I002  1
BB  I002  2
BB  I002  3
 ・   ・   ・
FF  I012  3

ってイメージですかね。

とりあえず、これでうまくいきそうです。
ありがとうございました。勉強になりました。

お礼日時:2014/07/15 09:43

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

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