• ベストアンサー

「クエリが閉じてるなら」「クエリが開いてるなら」

Sub test() If クエリが閉じてるなら Then  DoCmd.OpenQuery "クエリ1" ElseIf クエリが開いてるなら Then  DoCmd.Close acQuery, "クエリ1" End If End Sub という事をやりたいのですが、 「クエリが閉じてるなら」 「クエリが開いてるなら」 のコードがわかりません。 よろしくお願い致します。

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

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.3

横から失礼します。 この事でしょうか。 Debug.Print SysCmd(acSysCmdGetObjectState, acQuery, "Q_hoge") あるいは、 Debug.Print Application.CurrentData.AllQueries("Q_hoge").IsLoaded ビューの種類もある程度分かる様です。データシートビューは2を、デザイン&SQLビューは0を戻しました。 Debug.Print Application.CurrentData.AllQueries("Q_hoge").CurrentView ご参考まで。

noname#150427
質問者

お礼

ありがとうございました。大変参考になりました。

その他の回答 (2)

回答No.2

>ごめんなさい。アクセスVBAです。 >「単にフラグを立てておいてその状態を調べる」で大丈夫だと思います。 だったらそれで試して見て下さい。 >再度ご回答よろしくお願いします。 何を回答すればいいのですか? 先の回答で用が足りているのではないですか。 オープンしたところで  Frg = True クローズした後で Frg = False と設定して If Frg = False Then  DoCmd.OpenQuery "クエリ1 のようにして試して期待した動作をすればいいのでは。

noname#150427
質問者

お礼

なるほど。再度ご回答ありがとうございます。

回答No.1

単にフラグを立てておいてその状態を調べるのではだめですか? 質問されるのなら、言語やバージョンを含め状況を5W1Hを含めるようにして投稿されないと これを見ている人には適切に伝わりませんよ(レスがつかない)

noname#150427
質問者

お礼

ごめんなさい。アクセスVBAです。 「単にフラグを立てておいてその状態を調べる」で大丈夫だと思います。 再度ご回答よろしくお願いします。

関連するQ&A