AccessVBAで「OLEサーバーまたはActiveX~」のエラーが表示される場合の対処法・解決策

今回はAccessVBAを実行しようとすると「OLEサーバーまたはActiveX~」のエラーが発生してしまう場合の対処法・解決策です。

とある日、知人から「どうやっても解決できないから助けて!」と言われ、ちょっと調べてみたのですが…

このエラー、ちょっとくせもの。。

ネット上を調べてみてもなかなかドンピシャの解決策がヒットしない!

結構苦労しました。

ということで、同じように困っている方向けのメモを残しておきます。

OLEサーバー〜エラーメッセージ

今回表示されたエラーメッセージはこちらです。

「イベントプロパティに指定し式アクティブ時でエラーが発生しました:Microsoft AccessがOLEサーバーまたはActiveXコントロールと通信しているときにエラーが発生しました。」

ちょっと長いエラーメッセージですね。

今回ご紹介するのは、次の2つのケースです。

それぞれ「エラーの発生状況」「対処法・解決策」を書きましたので、ぜひ参考にしてくださいね!

別パソコンでAccess実行するとエラー

エラー発生状況

わかりやすく言うと、パソコンAで作成したAccessをパソコンBにコピーして実行すると、本エラーが発生します。

では、どのタイミングでエラーが発生するのか?

エラーが発生したAccessは、起動時にとあるフォームが開かれます。このときOpenイベントが発行されるように設定されていました。

そして今回のエラーは、Form_Open()プロシージャが実行される前のタイミングで発生するのです。

つまり、ユーザーが触れないところでエラーが発生・・・

どうにもできないのでは?

とちょっと挫けそうになりましたが、次の方法で解決しました。

対処法・解決策

このケースの解決策は、次の通りです。

  1. まずパソコンBで新しくAccessファイルを作成します。
  2. 次にパソコンBで、パソコンAで作成したAccessファイルを開いて、すべてのAccessオブジェクトを選択&コピーします。
  3. パソコンBで作成した新しいAccessファイルを開き、先ほどコピーしたオブジェクトを貼り付けます。

これだけの操作でパソコンBでAccessVBAが正常動作するようになりました。

言語が異なるOSでAccess実行するとエラー

AccessVBA内に日本語のコントロール名や関数名を記述している場合、日本語OSで作成したAccessを別言語OSにコピーして実行すると本エラーが発生します。

「コントロール名や関数名に日本語を使うべきではない」とよく耳にしませんか?

今回のようなケースがまさに日本語を使った場合の障害発生ケースですね!

このケースは、AccessVBA内に日本語で記述してあるコントロール名や関数名を日本語→英語に変換することで解決しました。

まとめ

今回はAccessVBAを実行しようとすると次のエラーが発生してしまう場合の対処法・解決策をご紹介しました!

「イベントプロパティに指定し式アクティブ時でエラーが発生しました:Microsoft AccessがOLEサーバーまたはActiveXコントロールと通信しているときにエラーが発生しました。」

もし同じエラーメッセージが発生してしまった場合は、ぜひ今回ご紹介した内容をお試しくださいね!

この記事がみなさまのお役に立ちましたら幸いです!

シェアする

  • このエントリーをはてなブックマークに追加

フォローする