1

Access データベース内のいくつかのオブジェクトを編集する必要があるプログラムに取り組んでいます。また、Access がODBC 経由で JET データベースを開いている間に、基礎となる JET データベースにアクセスしようとするサブプログラム (長い話) も実行します。

問題は、VBA を使用して Form オブジェクトの編集を開始するとすぐに (Application.LoadFromText を使用して)、Access がデータベースを排他モードに変更することです。排他モード自体は問題なく、なぜそれが必要なのかはわかっています。しかし、サブプログラムを実行できるように、後で「共有」モードに戻す必要があります。

UI を使用してデザイン モードでフォームを開くと、Access によってデータベースが排他モードに切り替えられることがわかりました。(これは、別のコンピューターから開いてみることで確認できます。) しかし、フォーム デザイナーを閉じると、Access はすぐに共有モードに戻ります。

VBA / COM呼び出しを使用して自分で切り替える方法はありますか?

Application.CloseCurrentDatabase() に続いて OpenCurrentDatabase() を呼び出すことができることはわかっていますが、それはすべてのウィンドウを閉じて UI をひっくり返すので、理想的ではありません。

4

2 に答える 2

5

フォーム/モジュール/などを使用して、データベースを別のフロントエンドに分割しています。オプションのテーブルを使用したバックエンドですか?そうすれば、フロントエンドがロックされていても、バックエンドには引き続きアクセスできます。Access には、まさにそのためのデータベース分割ウィザードがあります。

于 2009-07-28T03:46:51.360 に答える
0

.UserControl と .Visible を試すことができます。自動化されたプロセスで制御を転送するためにそれらを使用します。ここで役立つかどうかはわかりませんが、そうでない場合は反対票を投じることができます。

于 2009-07-28T18:45:30.717 に答える