2017-08-04 14 views
4

私のオフィスで複数の人が使用するAccessデータベースが、いくつかのエラーメッセージをすばやく連続して点滅させ、一部のマクロ機能を失うことがあります。初めてそれが起こったときに、トピックを調べて解決策を見つけました.Visual Basicで参照が不足していた問題が修正されました。参照リストを開くと、選択された4つのすべてが「MISSING:Microsoft X 16.0 Object Library」(Xは[Word、Powerpoint、Excel、Outlook])と表示されます。私はこれらのリファレンスの選択を解除し、スクロールダウンして15.0オブジェクトライブラリリファレンスを選択しました。状況は正常に戻り、完全なマクロ機能が回復しました。Visual Basicで繰り返しMicrosoft Officeの参照が見つからない

ただし、参照はまだ16.0オブジェクトライブラリに戻っています。欠落している参照を古いバージョンに置き換える必要がある場合は、数週間かかることもあります。それはまったく難しい修正ではありませんが、それは起こり続けており、他のほとんどのユーザーは何をすべきかを知らないでしょう。

は、私はすべてのPCは、Microsoft Officeの同じバージョンがインストールされていると信じているが、データベースが、同じオフィスで複数のコンピュータ間で共有されるため、問題が持続されると想像しなければなりません。何かご意見は?

答えて

2

あなたが信じるものにもかかわらず、私は、誰かがオフィスの新しいバージョンは、おそらくアクセス2016またはOffice 365サブスクリプションを持っていると思われます。私はオフィスでこの問題を経験していますが、Office 2013を使用している間に一部のコンピュータにAccess 2016があることがわかっています。

別のフロントエンドデータベースを作成することは、共有データベースのこのような問題を排除または軽減する可能性があります。共有バックエンドデータベースは、特定のバージョンに依存する可能性のあるすべてのコードモジュールとマクロを削除することができます。その後、フロントエンドを各クライアントにコピーすることができます。フロントエンドデータベースがより小さいバージョン(例えば、最後にOffice 15.0に設定された参照など)から各クライアントに配布される限り、新しいバージョンのAccessはローカルコピーのみの参照を自動的に更新する。

+0

オフィスコンピュータのバージョンがすべて同じでも、おそらく誰かが異なるバージョンのラップトップ/モバイルデバイスを使用している可能性があります。 –

+0

私は可能なラップトップの使用については考えていませんでしたが、それは非常にうまくいく可能性があります。私はIT部門に尋ねなければなりません。フロントエンド/バックエンドの状況については、実装できると思います。私たちは、そのように動作するはるかに大きなデータベースを持っており、参照の問題はそれに現れません。提案していただきありがとうございます。 – GunDelSol

1

はいこれは、Microsoftのコンポーネントオブジェクトモデルの非常に面倒な機能です。 (それは1990年代半ばに、私たちに明らかにされたときに、それは非常にエッジを切断したが。)

実用的な解決策は、遅延バインディングではなく事前バインディングを使用するVBAを切り替えることです。そうすることで、明示的な参照を完全に削除することができ、問題はなくなります。

ハーフウェイハウスは、クライアントの構成に応じて、自分の環境に固有のアドインをロードし、遅延バインディングローダーアドインを使用することです。ロードされたアドインは、早期バインディングを使用できます。

第2のオプションは、コードの変更を少なくするという点でより現実的かもしれません。

+0

リソース(リンク)を共有する方法はありますか?私は特定のオブジェクトのレイトバインディングに精通しており、それは私がオンラインで参照するものです。すべてのVBAモジュールを更新/調整する必要がないように、VBEのグローバル参照用のレイトバインディングを確立する方法はありますか?コードを使用してVBE参照が設定されると、それが自動的に保存されるので、データベースがAccessで再び開かれたときに同じ問題が発生します。 –

+0

私はその提案を感謝します。レイトバインディングを見ていきますが、これは私が継承したデータベースでした。それは何をすべきかについてうまく動作しますが、その背後にあるコードは私のCSクラスが私に信じさせるほど組織的ではありません。私は現実世界でそれに慣れなければならないだろうと思う...もう一度ありがとう。 – GunDelSol

関連する問題