
お世話になります。
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件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
12個のクエリを作らずともクロス集計クエリで出来そうです。
下記の場合の、日付を製品コードに、担当者を年月日に置き換えて考えてみてください。
http://hamachan4.exblog.jp/4110849/
具体的なテーブルのデザインや具体例が分かりませんので
的を射た回答はしづらいです。
ご回答ありがとうございます。
質問としましては、mdbのローカルにクエリを作成しないで抽出したいということです。
色々試してみて1つのクエリ(集計クエリも含め)で抽出できない為、個々にクエリを仮想で作成し、それらを紐付けて抽出出来たらと考えた次第です。
例では簡単に記載しましたが、実際には個々のクエリはもっと複雑なことをやって抽出してます。
見栄えは悪いですが、とりあえずローカルに12個のクエリを作れば、望みの抽出結果は得られるので、それでやろうと思います。
ありがとうございました。
No.2
- 回答日時:
レポートあるいはフォームのレコードセットは
テーブルやクエリ以外にSQLを直接記述する
ことが可能です。以下は例です。
MySQL1の内容
SELECT * FROM data WHERE tsuki=1
MySQL2の内容
SELECT * FROM data WHERE tsuki=2
レポートのレコードセット
SELECT * FROM data ORDER BY tsuki
あるいはレポートのOpenイベントで自身の
レコードソースを動的に書き換えても実現
できます。
具体的なSQLの記載がないので、これ以上
サンプルを示せませんが、一時テーブルを
作る方法はあまり感心できません。
経験から、Openイベントでレコードソースを
動的に変更する方法が最も柔軟に対応
できますが、技術的には難しい部類に属し
ます。
ご回答ありがとうございます。
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
・
・
のように抽出されています。
これらを製品リストと紐つけて、年間の受注実績を
抽出したいと考えている次第です。
説明不足ですみません。
No.1
- 回答日時:
ユニオンクエリのSQL文をレポートのレコードソースにすれば良いのでは?
http://makoto-watanabe.main.jp/access/acconExamp …
union all で繋げてね。
ご回答ありがとうございます。
ユニオンクエリだと、
MySQL1の結果
+
MySQL2の結果
+
・
・
MySQL12の結果
と、なるかと思いますが、やりたいことは
MySQL13----MySQL1
|
--MySQL2
|
--MySQL3
・
・
で、抽出したいので、ユニオンクエリとはちょっと違います。
説明不足ですみません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESS クエリで重複データを最...
-
「データベースまたはオブジェ...
-
ACCESSでクエリを作成したら「...
-
ユニオンクエリについて
-
ACCESS クエリで、グループ化...
-
Accessのクロス集計クエリから...
-
access・カウント結果がゼロで...
-
クエリで「データ型が一致しま...
-
マイクロソフトAccessでsqlのas...
-
[ACCESS]クエリで抽出したレコ...
-
Access あるクエリを利用して...
-
SqlServer2012 ビューとクエリ
-
Accessで複数のクエリを1つのCS...
-
AccessでのDISTINCTROW 、DISTI...
-
ACCESSでデータ削除すると「読...
-
ACCESSにてフィールド間の最小...
-
テーブルに主キーを作らないデ...
-
ACCESSで入力フォームをHTMLフ...
-
ファイルメーカーで住所内の市...
-
アクセスのフォームのビューが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESS クエリで重複データを最...
-
「データベースまたはオブジェ...
-
ACCESSでクエリを作成したら「...
-
ACCESSにてフィールド間の最小...
-
access・カウント結果がゼロで...
-
ACCESS クエリで、グループ化...
-
SqlServer2012 ビューとクエリ
-
access:連続データ入力
-
追加先の発見方法(SQL以外)
-
AccessのクエリをSqlサーバーの...
-
AccessでのDISTINCTROW 、DISTI...
-
SQLで優先順位が高いレコードを...
-
ACCESSで2つのテーブル比較で...
-
accessで選択クエリで得た全レ...
-
クエリで「データ型が一致しま...
-
Access200のFilterとFindの違い
-
マイクロソフトAccessでsqlのas...
-
ACCESSでデータ削除すると「読...
-
ACCESSでデータの追加は?
-
ACCESS クエリー 抽出条件が...
おすすめ情報