Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


888 / 2272 ツリー ←次へ | 前へ→

【9656】SQL文の書き方について たまお 07/7/5(木) 0:57 質問[未読]
【9658】Re:SQL文の書き方について hatena 07/7/5(木) 7:21 回答[未読]

【9656】SQL文の書き方について
質問  たまお  - 07/7/5(木) 0:57 -

引用なし
パスワード
   以下のようにSQL文は、クエリ(Q_***:クエリ)を参照する形で
SQL文を使っています。

strSQL1 = "SELECT Q_スケ.No_連休, Q_スケ.電話番号, Q_スケ.xx01, Q_スケ.xx01" _
    & "FROM Q_スケ WHERE Q_スケ.No_連休 = " & No_holi & ";"


それをやめて、
VBAで、いくつかのテーブルを組み合わせたものをSQL文で直接発行(作成)し、
できあがったクエリの名前をABCDとする。

SQL1 = "SELECT T_A.***, T_A.***, T_B.****, From ・・・・"

↑ SQL1文で作成したものをクエリ名ABCDとして、

さらに、VBAで、

☆☆☆☆☆

SQL2 = "SELECT ABCD.***, ABCD.***, T_B.****, From ・・・・"

といった書き方をしたいものですが、☆☆☆☆☆ のところに何かプログラムを
書くような気がするのですが、どのようにVBAで書けば良いでしょうか。

上記そのまま、SQL文だけ書いてもできないのすが、他にどういうプログラムを
書けば良いか、どなたかご助言頂けないでしょうか。(プロパティもご教示頂けると
ありがたいです)

配布用mdbの中にはリンクしたテーブルのみにしたい(クエリを置くのはサイズが
大きくなるので・・・)

【9658】Re:SQL文の書き方について
回答  hatena  - 07/7/5(木) 7:21 -

引用なし
パスワード
   >VBAで、いくつかのテーブルを組み合わせたものをSQL文で直接発行(作成)し、
>できあがったクエリの名前をABCDとする。
>
>SQL1 = "SELECT T_A.***, T_A.***, T_B.****, From ・・・・"
>
>↑ SQL1文で作成したものをクエリ名ABCDとして、
>
>さらに、VBAで、
>
>☆☆☆☆☆
>
>SQL2 = "SELECT ABCD.***, ABCD.***, T_B.****, From ・・・・"
>
>といった書き方をしたいものですが、☆☆☆☆☆ のところに何かプログラムを
>書くような気がするのですが、どのようにVBAで書けば良いでしょうか。

CreateQueryDefメソッドをお調べください。
ただ、
CreateQueryDef でクエリを作ってしまうと、その分サイズが増えます。
後で削除しても、MDBの仕様上サイズは減りません。サイズを気にするなら、
いい方法ではないですね。

別案として、SQL1 をサブクエリとして埋め込むという方法もあります。

SQL2 = "SELECT ABCD.***, ABCD.***, T_B.****, From (" & SQL1 & ") AS ABCD ・・・・"

これなら、サイズは増えないでしょう。しかし、、、、

>配布用mdbの中にはリンクしたテーブルのみにしたい(クエリを置くのはサイズが
>大きくなるので・・・)

クエリ自体は、中身は、SQL ですので、それほどサイズは増えませんよ。
コードにSQLを書ければその分サイズが増えますので、ほとんど差は
ないのでは。

888 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078201
(SS)C-BOARD v3.8 is Free