Visual Basic for Applications (VBA) 関数は、参照が見つからないデータベースで分割されます

元の KB 番号: 283806

注:

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

現象

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

エラー メッセージ 1

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

エラー メッセージ 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 Image Edit Control]\(コダック イメージ編集コントロール\) をクリックし、[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 を繰り返し、エラー メッセージが表示されなくなったことに注意してください。