• ベストアンサー

ExcellVBA から Access で開いた選択ビューを参照

Excell / Access とも 2003 です。 Access ですでに開いている選択クエリーを、Excell VBA から参照し、内容を取得する方法を探しています。 Access側に手を入れることはできない上にブラックボックスとなっているため、Excell側から「すでに開いている選択クエリー」を取得する方法を探している次第です。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • rivoisu
  • ベストアンサー率36% (97/264)
回答No.1

>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 メソドを使えばシートに貼り付けることもできますし、一件づつ処理することもできます。 よろしいでしょうか? 不明な点があればお付き合いします。

jaboon
質問者

補足

早速の回答ありがとうございます。 ご回答のとおり、普通であればADOなり何なりでクエリを実行できるのですが、今回は他組織提供のDBということもあり、クエリの直接実行を禁じられているため、困っています。 >>Access ですでに開いている選択クエリーを、 >というところがよくわからないのですが まず、ユーザー操作にて Accessでクエリーを実行しクエリの結果画面を表示させます。クエリ実行はフォームに張られたボタンによって実行されます。この状態で Excel から「すでにAccessの子ウィンドウとして開いているクエリの実行結果」を取得したいと考えています。 直接クエリを Excelから実行するのではないため、難しい問題になっています。 お付き合い頂ければ有難く思います。

その他の回答 (2)

  • rivoisu
  • ベストアンサー率36% (97/264)
回答No.3

となると その組織にクエリ実行結果をCSVでもらえるように相談するしかなさそうですね。

jaboon
質問者

お礼

やはり方法がないようですね。 他の方法を考えてみます。 ありがとうございました。

  • rivoisu
  • ベストアンサー率36% (97/264)
回答No.2

えー、回答を書いてから「ひょっとしたらクエリも見えないでその結果だけが見える」という状況ではないかと想像してました。 もし「アクセスのデータシートに表示されているデータを利用できる」というそうであればコピー&ペーストで何とか利用できると思うのですが それもできないとなるとしょっと難しいですね どうでしょうか?

jaboon
質問者

補足

回答ありがとうございます。 手作業のコピー&ペーストは可能ですが、大量のクエリを実行するため、子ウィンドウで溢れてしまい、オペレータの手作業では少々無理があります。 やっぱり難しいですかね・・・。 お付き合いいただきありがとうございました。

関連するQ&A

専門家に質問してみよう