- ベストアンサー
ExcellVBA から Access で開いた選択ビューを参照
Excell / Access とも 2003 です。 Access ですでに開いている選択クエリーを、Excell VBA から参照し、内容を取得する方法を探しています。 Access側に手を入れることはできない上にブラックボックスとなっているため、Excell側から「すでに開いている選択クエリー」を取得する方法を探している次第です。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>Access ですでに開いている選択クエリーを、 というところがよくわからないのですが Accessで作られたクエリ、accessに格納されている名前の分かっているけど編集できないクエリという風に解釈してみます。 VBAでなくても外部データ取り込みでテーブルもクエリと同じように扱えます。 当然VBAでもAccessに格納されているクエリーの実行結果をレコードセットにいれることは可能です。 クエリの名前を”SEL顧客"とすると ADOを使います。 クエリ名 = "SEL顧客" Set DB接続 = New ADODB.Connection DB接続.Open (DB接続str) Set DB表 = New ADODB.Recordset DB表.Open クエリ名, DB接続, , adLockOptimistic 以上でDB表(recordset)にクエリ(SEL顧客)の実行結果が入ります。 copyfromrecordset メソドを使えばシートに貼り付けることもできますし、一件づつ処理することもできます。 よろしいでしょうか? 不明な点があればお付き合いします。
その他の回答 (2)
- rivoisu
- ベストアンサー率36% (97/264)
となると その組織にクエリ実行結果をCSVでもらえるように相談するしかなさそうですね。
お礼
やはり方法がないようですね。 他の方法を考えてみます。 ありがとうございました。
- rivoisu
- ベストアンサー率36% (97/264)
えー、回答を書いてから「ひょっとしたらクエリも見えないでその結果だけが見える」という状況ではないかと想像してました。 もし「アクセスのデータシートに表示されているデータを利用できる」というそうであればコピー&ペーストで何とか利用できると思うのですが それもできないとなるとしょっと難しいですね どうでしょうか?
補足
回答ありがとうございます。 手作業のコピー&ペーストは可能ですが、大量のクエリを実行するため、子ウィンドウで溢れてしまい、オペレータの手作業では少々無理があります。 やっぱり難しいですかね・・・。 お付き合いいただきありがとうございました。
補足
早速の回答ありがとうございます。 ご回答のとおり、普通であればADOなり何なりでクエリを実行できるのですが、今回は他組織提供のDBということもあり、クエリの直接実行を禁じられているため、困っています。 >>Access ですでに開いている選択クエリーを、 >というところがよくわからないのですが まず、ユーザー操作にて Accessでクエリーを実行しクエリの結果画面を表示させます。クエリ実行はフォームに張られたボタンによって実行されます。この状態で Excel から「すでにAccessの子ウィンドウとして開いているクエリの実行結果」を取得したいと考えています。 直接クエリを Excelから実行するのではないため、難しい問題になっています。 お付き合い頂ければ有難く思います。