- ベストアンサー
「クエリが閉じてるなら」「クエリが開いてるなら」
Sub test() If クエリが閉じてるなら Then DoCmd.OpenQuery "クエリ1" ElseIf クエリが開いてるなら Then DoCmd.Close acQuery, "クエリ1" End If End Sub という事をやりたいのですが、 「クエリが閉じてるなら」 「クエリが開いてるなら」 のコードがわかりません。 よろしくお願い致します。
- みんなの回答 (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 ご参考まで。
その他の回答 (2)
- vbhanatyan
- ベストアンサー率79% (70/88)
>ごめんなさい。アクセスVBAです。 >「単にフラグを立てておいてその状態を調べる」で大丈夫だと思います。 だったらそれで試して見て下さい。 >再度ご回答よろしくお願いします。 何を回答すればいいのですか? 先の回答で用が足りているのではないですか。 オープンしたところで Frg = True クローズした後で Frg = False と設定して If Frg = False Then DoCmd.OpenQuery "クエリ1 のようにして試して期待した動作をすればいいのでは。
お礼
なるほど。再度ご回答ありがとうございます。
- vbhanatyan
- ベストアンサー率79% (70/88)
単にフラグを立てておいてその状態を調べるのではだめですか? 質問されるのなら、言語やバージョンを含め状況を5W1Hを含めるようにして投稿されないと これを見ている人には適切に伝わりませんよ(レスがつかない)
お礼
ごめんなさい。アクセスVBAです。 「単にフラグを立てておいてその状態を調べる」で大丈夫だと思います。 再度ご回答よろしくお願いします。
お礼
ありがとうございました。大変参考になりました。