Access VBAで選択クエリと同等の操作をさせる方法について 閲覧ありがとうございます。 【教えてほしいこと】

Microsoft Access | Visual Basic43閲覧xmlns="http://www.w3.org/2000/svg">50

ベストアンサー

0
画像

クエリを基にクエリを作るのが副問い合わせです。 アクセス使ってる人の多くは「副問い合わせ」と言う言葉を知らずに副問い合わせを駆使しています。 クエリのSQLビューからSQLを作る方法はAccessでなく他の言語でSQLを使う時に重宝します。 Webアプリを作ってる時にテーブルの結合や副問い合わせがあるSQLが必要な時など、一度Accessでテーブル作ってクエリでテストしてSQL作ると楽だったりします。

ThanksImg質問者からのお礼コメント

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

お礼日時:7/17 13:47

その他の回答(3件)

0

ご質問の内容ですが、VBAでSQLの処理をすればクエリをわざわざ作成する必要はありません。 ご質問者様の考えは、私も同調します。ADOやDocmd.RunSQLメソッドを使う方法等が挙げられますが、まずはADOによる方法として以下の記事を紹介しますので、ご参考になさってください。 https://www.latest-info-system.com/access-vba%e3%80%80ado%e3%81%ab%e3%82%88%e3%82%8b%e3%83%ac%e3%82%b3%e3%83%bc%e3%83%89%e6%93%8d%e4%bd%9c/

0

Accessは 【VBAで「選択クエリ」を作る】=【クエリ一覧に保存される】 です。 VBAで「アクションクエリ」を構築実行するのはよくあります。 運用中にクエリが増えていくということはほぼ無いことです。 ↓こんな感じでクエリが増えていくシステムは破綻の兆しがチラホラです。 q集計201004 q集計201005 q集計201006 : : q集計yyyymm ふまえて フォームやレポートの「レコードソース」・コンボボックスやリストボックスの「値集合ソース」を選択クエリにすればクエリ欄はほとんど使用しません。 ただ 上記で同じものが何度(3回以上かな)も出現するやつ、 親子関係のテーブルを合体させたものを仮想テーブルとしたいとき、 定義域集計関数(D~系関数)でどうしても使いたいとき は選択クエリとして保存することはあります。 ということでもし前述のq集計yyyymmのケースとかなら、 VBA云々以前のユーザーDB仕様の問題になってきます。

0

AccessVBA SQL 実行 でGoogle検索すると、いろいろと出てきます。 ただ、サブクエリ(副問い合わせ)の知識が必要になると思うので、その知識がないと、結局複数のクエリをひとつにまとめられません。 また、たしかAccessの場合は、サブクエリを使うとインデックスが設定してあってもそれが働かなくなり(フルレコードスキャンになる)、クエリの実行速度が遅くなります。 (でも、クエリのクエリのクエリ、でも同じかもですので、もしそうでしたら気にしなくてもいいかもです。) ク

あ、もちろん、副問い合わせのないクエリなら、簡単にVBAでやれると思います。 まず目的のことができるテスト用クエリを作っておいて、その中で自動生成されたSQL文を、VBAコードの中で、SQL文として書けばいいだけなので。 うまく動作したら、テスト用クエリは、クエリ一覧から消せばいいです。