ちょっと先の未来クイズ第5問

「WorkbookQuery.Delete (True)が環境によってエラーとなる原因について」
https://teratail.com/questions/c45kubmfdq6nse

まさにこれにぶち当たってる状態です。
同じく「qry.Delete (True)」としてもエラーになって削除できず、
「qry.Delete」とすればクエリの接続だけ残ってしまう。


https://qiita.com/Q11Q/items/feaa51afdff066e7f54f

接続を手当たり次第にすべて削除する方法はこちらでわかったんですが、できれば削除したクエリで使っていた接続だけを削除したいと思っております。

たくさんある接続の中から、削除したクエリの接続だけを取得する方法などあるでしょうか?

何も設定しないと「接続1」「接続2」という形で増えていくのでどれを使っていたのか見当がつきません。
接続名だけでも取得できればその名前を指定して削除すれば良いだけだと思うんですが、該当のクエリが使っていた接続の名前を取得する方法はあるんでしょうか?

VBAでの方法をお願いいたします。

A 回答 (1件)

こんばんは



クエリを使わないので、以下は簡単なテストをしてみただけです。
クエリにもいろいろなタイプが存在するので、全ての場合に共通か等については調べてはいませんので、以下はヒント程度として読んでください。


>削除したクエリの接続だけを取得する方法などあるでしょうか?
クエリのName属性で名称を取得できます。(仮にAAAとします)

一方で、各ConnectionのDescription属性を参照すると
 「ブック内の 'AAA' クエリへの接続です。」
というような文字列を取得できますので、これを名称を照合することで対応関係をチェックできるのではないかと思います。
(もっと適切な方法があるかも知れませんけれど、一応、対応はできそうなので・・)

まずは、実際にご利用のクエリ群に対して、上記のような対応関係が成立しているかどうかを確認なさってみてはいかがでしょうか?
    • good
    • 0
この回答へのお礼

できなかったですね・・・
ご回答ありがとうございました。

お礼日時:2024/11/03 20:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A