Visual Basic for Applications (VBA) 関数は、参照が見つからないデータベースで壊れる

注意

Office 365 用リソース は、 エンタープライズ向け Microsoft 365 アプリに名前変更されています。 この変更の詳細については、 このブログの投稿を参照してください。

元の KB 番号:   283806

注意

基本的なマクロ、コーディング、相互運用性のスキルが必要です。 この記事は、Microsoft Access データベース (.mdb と .accdb) と Microsoft Access プロジェクト (.adp) に適用されます。

現象

Visual Basic for Applications 関数を含むプロシージャが存在し、データベースに不足しているオブジェクト ライブラリまたはタイプ ライブラリへの参照が含まれている場合は、モジュールをコンパイルするか、プロシージャを実行すると、次のいずれかのエラー メッセージが表示される場合があります。

エラー メッセージ 1

Microsoft Access データベースまたはプロジェクトには、ファイルへの参照が見つからないか壊れています <filename> 。
* データベースまたはプロジェクトが正しく動作するには、この参照を修正する必要があります。
* この参照を修正する方法については、「ヘルプ」をクリックします。

エラー メッセージ 2

コンパイル エラー:
プロジェクトまたはライブラリが見つかりません

原因

データベースには、データベース、タイプ ライブラリ、または MISSING として <referencename> マークされているオブジェクト ライブラリへの参照が [参照] ダイアログ ボックスに含まれている。

解決方法

不足している参照を削除するには、次の手順を実行します。

  1. データベースを開きます。
  2. Alt キーを押しながら F11 キーを押して、Visual Basic Editor を開きます。
  3. [ツール] メニューの [参照設定] をクリックします。
  4. [MISSING] <referencename> とマークされているタイプ ライブラリまたはオブジェクト ライブラリのチェック ボックスをオフにします。

参照を削除する代わりに、参照ファイルを [参照] ダイアログ ボックスで指定されたパスに復元します。 参照先ファイルが新しい場所にある場合は 、MISSING: <referencename> 参照をクリアしてから、新しいフォルダーにファイルへの新しい参照を作成します。

注意

Access 実行時アプリケーションでは、メニューから参照を表示できません。 ただし、次の記事では、コードを使用して参照を表示する方法を示します 。209849 参照をループしてプロパティを表示する方法

動作の再現手順

  1. サンプル データベース Northwind.mdb を開きます。

  2. テーブルまたはクエリに基づいてない新しいフォームを作成します。

  3. [挿入]メニューの[コントロール] ActiveXクリックします

  4. [コントロール の選択] ActiveX[Kodak イメージ 編集コントロール] をクリックし 、[OK] をクリックします

  5. フォームを frmReference として保存し、閉じます。

  6. Northwind.mdb を閉じ、Access を終了します。

  7. ImgEdit.ocx ファイルを検索して名前を ImgEdit.old に変更します。

  8. Access を起動し、Northwind.mdb を開きます。

  9. デザイン ビューでスタートアップ モジュールを開きます。

  10. [デバッグ] メニューの [ノースウィンドの コンパイル] をクリックします。 この記事の「現象」に記載されている両方のエラー メッセージが表示されます。

  11. [OK] をクリックします。 [参照] ダイアログ ボックスが表示されます。次の参照は、[使用可能な参照] ダイアログ ボックスで強調表示 されます。

    MISSING: Kodak Image Edit Control

  12. [使用可能 な参照 ] ダイアログ ボックスで [キャンセル] をクリックします。

  13. ImgEdit.old ファイルを検索し、ImgEdit.ocx に名前を変更します。

  14. 手順 10 を繰り返し、エラー メッセージが表示されなくなった点に注意してください。