dポイントプレゼントキャンペーン実施中!

お世話になります。

Accessにて、ローカルに12個(月毎)にクエリを作成し、そのらのクエリを紐付けてテーブルを作成しようとしています。

しかし、できればローカルにクエリを作成したくないので、VBA内で仮想?にクエリを作成し、それらを紐付けて最終的にテーブルを作成したいと考えています。

VBAのイメージ的には以下のような感じです。

 フォーム上のボタンがクリックされた際に、

   MySQL1 = 1月分の選択クエリ
   MySQL2 = 2月分の選択クエリ
   MySQL3 = 3月分の選択クエリ
           ・
           ・
   MySQL11 = 11月分の選択クエリ
   MySQL12 = 12月分の選択クエリ

   MySQL13 = 上記12個の選択クエリを紐つけたテーブル作成クエリ(tempを作成)

   DoCmd.RunSQL MySQL13

   'tempが作成されたら、そのテーブルをソースとしたレポートをOpen   
  
   DoCmd.OpenReport "年間実績"   


以上です。

それぞれの選択クエリを、
Set RS0 = DB.OpenRecordset(MySQL0)
Set RS1 = DB.OpenRecordset(MySQL1)
のようにして、MySQL13のテーブル作成クエリで、RS0、RS1を使用すればよいかと思ったのですが、『入力テーブルまたはクエリ”RS0”が見つかりませんでした。そのテーブルやクエリが存在していること、または名前が正しいことを確認してください。』と表示され、うまくいきません。

そもそも、上記のように仮想でクエリを作成し、それを紐付けてテーブルを作成することは可能なのでしょうか。よい方法がございましたらご教授願います。

以上、宜しくお願い致します。













 

A 回答 (3件)

12個のクエリを作らずともクロス集計クエリで出来そうです。


下記の場合の、日付を製品コードに、担当者を年月日に置き換えて考えてみてください。
http://hamachan4.exblog.jp/4110849/
具体的なテーブルのデザインや具体例が分かりませんので
的を射た回答はしづらいです。
    • good
    • 0
この回答へのお礼

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

質問としましては、mdbのローカルにクエリを作成しないで抽出したいということです。

色々試してみて1つのクエリ(集計クエリも含め)で抽出できない為、個々にクエリを仮想で作成し、それらを紐付けて抽出出来たらと考えた次第です。

例では簡単に記載しましたが、実際には個々のクエリはもっと複雑なことをやって抽出してます。

見栄えは悪いですが、とりあえずローカルに12個のクエリを作れば、望みの抽出結果は得られるので、それでやろうと思います。

ありがとうございました。

お礼日時:2012/03/27 15:10

レポートあるいはフォームのレコードセットは


テーブルやクエリ以外にSQLを直接記述する
ことが可能です。以下は例です。

MySQL1の内容
SELECT * FROM data WHERE tsuki=1
MySQL2の内容
SELECT * FROM data WHERE tsuki=2

レポートのレコードセット
SELECT * FROM data ORDER BY tsuki

あるいはレポートのOpenイベントで自身の
レコードソースを動的に書き換えても実現
できます。

具体的なSQLの記載がないので、これ以上
サンプルを示せませんが、一時テーブルを
作る方法はあまり感心できません。

経験から、Openイベントでレコードソースを
動的に変更する方法が最も柔軟に対応
できますが、技術的には難しい部類に属し
ます。
    • good
    • 0
この回答へのお礼

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

SQLを直接記述可能なことは理解しているのですが、
一つのクエリ(SQL)で結果を抽出できない状況です。
No.1さんに返信したように、12個のクエリを紐付けして
抽出する必要があります(ユニオンクエリとは異なります)。

具体的には、年間の受注実績のテーブルがあり、そこには
受注日、製品コード、受注数量があります。

今回、抽出したいのは年間で月別の受注実績です。
以下のような感じです。

製品コード 2012年3月  2012年2月 2012年1月・・・
AAA       10       0       5
BBB        3       8       8
 ・
 ・

12個のクエリというのは、上記の年月毎のクエリです。
3月分クエリの抽出結果は、

製品コード  2012年3月
AAA        10
BBB         3
 ・
 ・
のように抽出されています。

これらを製品リストと紐つけて、年間の受注実績を
抽出したいと考えている次第です。
説明不足ですみません。

お礼日時:2012/03/26 09:26

ユニオンクエリのSQL文をレポートのレコードソースにすれば良いのでは?


http://makoto-watanabe.main.jp/access/acconExamp …
union all で繋げてね。
    • good
    • 0
この回答へのお礼

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

ユニオンクエリだと、
MySQL1の結果
   +
MySQL2の結果
   +
   ・
   ・
MySQL12の結果

と、なるかと思いますが、やりたいことは

MySQL13----MySQL1
       |
        --MySQL2
       |
        --MySQL3
         ・
         ・
で、抽出したいので、ユニオンクエリとはちょっと違います。
説明不足ですみません。

お礼日時:2012/03/26 09:04

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

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