テーブル作成クエリについて

このQ&Aのポイント
  • Accessでのテーブル作成クエリについての質問です。
  • フォーム上で数量を指定してテーブルを作成し、レコードを追加したいです。
  • 作成したテーブルをソースとしたレポートでラベルを印刷したいです。
回答を見る
  • ベストアンサー

Access テーブル作成クエリについて

お世話になります。 以下のようなテーブルがあります。 区分 コード 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回のテーブル作成クエリの実行で作成することは 可能でしょうか。 ※上記テーブルが出来たら、そのテーブルをソースとしたレポートでラベルを   印刷させます。 ご教授の程、宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.2

#1です 以下を参照してください http://ja.wikipedia.org/wiki/%E9%96%A2%E4%BF%82%E4%BB%A3%E6%95%B0_(%E9%96%A2%E4%BF%82%E3%83%A2%E3%83%87%E3%83%AB)#.E7.9B.B4.E7.A9.8D この中の、S:E だけの E=1,2,3 の場合を考えてみてください。 「T連番」の「連番」が、S:E に相当して、用意した連番の <=3 を使うものになります。 ※ これで回答になっていたでしょうか

naoto0216
質問者

お礼

度々のご回答ありがとうございます。 私にはちょっと難しいです。。(笑 要するに★★テーブルの内容×連番の数(例だと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 ってイメージですかね。 とりあえず、これでうまくいきそうです。 ありがとうございました。勉強になりました。

その他の回答 (1)

  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.1

テーブルを作成しないといけないですか? 以下は、クエリで3倍にするものになります。 ・準備するもの(連番のテーブル) テーブル名「T連番」 フィールド:連番(長整数:主キー) 連番には、1~必要最大数の数値を入れておきます。 元のテーブル名を ★★ と仮定した場合、 クエリのSQLビューに以下を記述すると3倍になります。 SELECT * FROM ★★, T連番 WHERE 連番<=3; 5倍にするのなら 連番<=3 → 連番<=5 とすれば良いです。

naoto0216
質問者

お礼

30246kikuさま 早速のご回答ありがとうございました。 教えて頂いた通りに試してみたところ、うまくいきました。 勉強不足で大変申し訳ないのですが、このクエリはどういう仕組みで各レコードが3つずつになっているのでしょうか。 当該クエリをデザインで見てみましたが、理解できず。。 度々で申し訳ございませんが、ご教授頂けると幸いです。 宜しくお願い致します。

関連するQ&A

  • Access2003 一つのクエリで結果を出したい

    お世話になります。 下記テーブルを紐付けてクエリを作成します(Access2003)。 受注テーブル  ・ID  ・コード  ・数量 検品テーブル  ・ID  ・コード  ・検品フラグ マスターテーブル  ・ID  ・コード  ・印刷フラグ 検品テーブルのレコードは、受注テーブルの数量合計が展開されたレコード数となります。例えば、AAAというコードで数量合計が8の場合、検品テーブルではAAAのレコードが8レコード存在することになります。 但し、マスターテーブルの印刷フラグがYesとなっているものは、数量がいくつあっても受注テーブルは1レコード作成されます(数量合計で展開しない)。  受注テーブル   ID コード 数量   1  AAA   5   2  AAA   3   3  BBB  100  検品テーブル   ID コード 検品フラグ   1  AAA   Yes   2  AAA   Yes   3  AAA   Yes   4  AAA   Yes   5  AAA   Yes   6  AAA   Yes   7  AAA   No   8  AAA   Yes   9  BBB   Yes  マスターテーブル   ID コード 印刷フラグ   1  AAA   No   2  BBB   Yes こんな感じです。 そこで各テーブルをコードで紐付けてグループ化し、検品フラグYesで抽出した状態で以下の結果を表示出来るようにしたいところです。 コード 数量合計  AAA   7  BBB  100 要するに印刷フラグがYesのものは受注テーブルの数量合計を表示し、それ以外は検品された数を表示させたいと考えています。 あらかじめ受注テーブルでコードでグループ化し、数量の合計を算出するクエリ(※1)を作成し、そのクエリと検品テーブル、マスターテーブルを紐付けたらうまく表示出来ました。 ※数量合計はIIFで印刷フラグ=Yesの場合は※1の数量合計を、Yesではない場合は検品テーブルのレコードカウント数を表示。 しかし、できれば一つのクエリで上記の結果を表示させたいのですが、可能なのでしょうか。 ご教授お願い致します。

  • アクセスのクエリの作り方

    初心者なので教えてくださいませんか? アクセスでテーブルを複数作成して、それをクエリで結合するときに、どのテーブルからどのフィールドを選べばいいのかわかりません。 例えば・・・ 売上テーブル:NO 売上日 商品コード 数量 商品テーブル:商品コード 商品名 単価 この二つのテーブルを結合するクエリを作ります。 NO 売上日 商品コード 商品名 単価 数量 上記のフィールドを使用したいのですが、このとき、商品コードをどちらのテーブルのを使ったらよいのでしょう。 その判断は何からしたらよいのでしょうか。 うまく説明できているかわかりませんが、よろしくお願いします。

  • クエリでレコード追加

    お世話になります。 Access2010 作成したフォーム上で「印刷」ボタンを押すと、ラベルシートに印刷されます。 このラベルシートは3列×10枚です。 現状、普通に印刷する分には問題ありません。しかし、必ずしも30枚印刷する訳でもないので、中途半端にラベルが残ったシートが出来てしまいます。 例えば、15枚印刷した場合、そのシートにはラベルが15枚残ってしまいます。 なので、印刷時にソースとなるテンポラリテーブルを作成し、そのテーブルの頭から15レコードにブランクをいれて、16枚目から印刷させたいところです。 で、実は上記の対処も出来ており特に運用上問題無いのですが、ブランクのレコードを挿入する手順として、  1.まっさらなテーブルを作成  2.指定された開始位置(上記例だと15)を取得  3.ループで回してブランクレコードを15個作成  4.16レコード目からラベル番号を入れていく。  5.このテンポラリをソースとして印刷 としてます。 やりたいこととしては、上記のようにループでまわしながらブランクレコードを追加するのではなく、指定された開始位置の分のレコードを、クエリで一括挿入できないか・・というものです。 ご教授の程、宜しくお願い致します。

  • 「Access2000」クエリー作成についてお教えください。

    たとえば、売上テーブルから売上先、商品、数量を抽出するクエリーを作成する場合、数量分のレコードを発生させたいのですが・・・。 つまり、売上テーブルに次のレコードがあったとき・・・  A商店 りんご 3個  B商店 みかん 2個 クエリーには以下のように表示させたいのですが・・・  A商店 りんご 3  A商店 りんご 3  A商店 りんご 3  B商店 みかん 2  B商店 みかん 2 以上、よろしくお願いします。

  • Access クエリで新規テーブルを作成

    お世話になります。 クエリで新規テーブルを作成することは可能でしょうか。 テーブル作成クエリだと、既存のテーブルで抽出した内容で新規に作成する ことになるかと思います。 今回はまっさらな新規のテーブルを作成したいところです。 例えば、フィールド名とデータ型が  ID オートナンバー  受注日 日付型  商品   テキスト型 の場合だと、どのようになりますでしょうか。 ご教授の程、宜しくお願い致します。

  • Access2000のテーブル作成クエリについて

    テーブル作成クエリを使用し、作成された新しいテーブルを見ると、Yes/No型のフィールドのレコードが 0 や -1 に変換されています。 これを回避、または後からチェックボックスの形式に訂正する方法はないでしょうか? もうひとつ 作成された新しいテーブルでは、コピー元のテーブルで「主キー」となっていたフィールドが「主キー」ではなくなります。どうしてなのでしょうか?

  • accessテーブル作成クエリについて

    テストで6個のテーブルから必要なテーブルを作成するクエリを作りました。 本日新しい本番データができたのでこのDBにテストでOKだったクエリを「ファイル」-「外部データ。。。」-「インポート」しました。 クエリを実行したところレコードがゼロという結果になりました。 テストでOKだったクエリを「コピー」-「貼り付け」しても同じ結果でした。 クエリを別のDBで使用するにはどうしたらよいのでしょうか? 毎月データが更新されるためDBの名前は、「工場0906」「工場1003」のように工場+月日となります。 よろしくお願いします。

  • ファイルメーカーでアクセスクエリーみたいな作成方法

    データベースソフトのアクセスは多少知識があります。 ファイルメーカーでアクセスで言うところのクエリーはどの様に作成したらよろしいでしょうか。 例えば、従業員コードをキーとして テーブル1(従業員マスタ)  従業員コード  氏名  入社年月日 テーブル2(住所録)  従業員コード  住所 テーブル3(家族構成)  従業員コード  配偶者  扶養1 上記テーブルを3つ作成し、アクセスで言うところのクエリーみたいな感じで  従業員コード  氏名  住所  配偶者 上記レコードをまとめたテーブルを作成したい。   何か参考になる資料(本)のご紹介、もしくは教えてもらえませんでしょうか。 よろしくお願い致します。

  • ACCESS テーブルの結合

    お世話になります。 テーブルA(約20万レコード)、B(6レコード)があり、共通しているフィールドは以下の通りです。  ・受注日  ・製品コード  ・数量 AとBのテーブルの共通しているフィールドを条件無しで1つのテーブルとして見立てたいと思っておりますがうまくいきません。 SELECT A.製品コード, A.数量, A.受注日 FROM A UNION SELECT B.製品コード, B.数量, B.受注日 FROM B; 上記SQLでエラーにはならないのですが、レコード数が本来約20万レコードあるはずが、7万レコードしか抽出されません。 SELECT A.製品コード, A.数量, A.受注日 FROM A; と SELECT B.製品コード, B.数量, B.受注日 FROM B; をそれぞれ分けてやると、レコード数に問題ありません。。 どのようにすれば2つのテーブルを1つに結合できるのでしょうか。 ご教授の程、宜しくお願い致します。

  • テーブル作成クエリとデータベースの分割

    当方、Accessは全くの素人ですが、急遽Accessにて連絡先台帳を 作ることとなりました。 参考書を片手に、なんとかそれ相応のものになってきましたが、 表題部分にて四苦八苦しております。 どうぞ、ご教授のほどよろしくお願いします。 まず、連絡先テーブルを作成しました。 この中には個人名、会社名、住所などを入力するようにしました。 会社名の中には複数のレコードがあるため、個人向けではなく、会社向けの 送付用のラベルを作成したいと思い、テーブル作成クエリを用いて 会社テーブルを作成しました。 上記テーブルから、ラベル作成までは何とかできるようになりましたが、 複数のユーザーがこのデータベースを使うため、データベースの分割をし 運用したいのです。 また、この会社テーブルを別のデータベースでも使用したいと思っております。 ツールを用いて、データベースの分割はできましたが、新たな連絡先が 追加されたときなど、再度テーブル作成クエリを実行してしまうと、リンクが 外れてしまいます。 外部データからリンクテーブルを作りなおすと、以前のデータのままなので、 分割したデータベースを更新しなければならないことはわかりましたが、 その方法が全くわかりません。 できれば、更新ボタンを押した際に、 テーブル作成クエリを起動して、テーブルを作成し、分割したデータベースを 更新させたいのですが、何か良い方法はございませんでしょうか? 他の方法でも全く問題ありません。 VBAやマクロでも構いません。 ただ、VBAもマクロも殆どわかりませんので、できればコード等を記載して いただけると助かります。 Access2007を用いております。 どうぞよろしくお願いします。