Access データベース内のいくつかのオブジェクトを編集する必要があるプログラムに取り組んでいます。また、Access がODBC 経由で JET データベースを開いている間に、基礎となる JET データベースにアクセスしようとするサブプログラム (長い話) も実行します。
問題は、VBA を使用して Form オブジェクトの編集を開始するとすぐに (Application.LoadFromText を使用して)、Access がデータベースを排他モードに変更することです。排他モード自体は問題なく、なぜそれが必要なのかはわかっています。しかし、サブプログラムを実行できるように、後で「共有」モードに戻す必要があります。
UI を使用してデザイン モードでフォームを開くと、Access によってデータベースが排他モードに切り替えられることがわかりました。(これは、別のコンピューターから開いてみることで確認できます。) しかし、フォーム デザイナーを閉じると、Access はすぐに共有モードに戻ります。
VBA / COM呼び出しを使用して自分で切り替える方法はありますか?
Application.CloseCurrentDatabase() に続いて OpenCurrentDatabase() を呼び出すことができることはわかっていますが、それはすべてのウィンドウを閉じて UI をひっくり返すので、理想的ではありません。