Access データベースでの参照の問題を解決する方法

文書翻訳 文書翻訳
文書番号: 310803 - 対象製品
すべて展開する | すべて折りたたむ

目次

概要

この資料では、Access データベースでの参照の使用に関する問題について説明します。

参照の問題を理解するには、Access データベースでライブラリが参照されるしくみ、および参照を切断せずに配布先コンピュータにデータベースをインストールするのに必要な要件を理解しておく必要があります。この資料では、以下のトピックについて概説します。
  • Access データベースの参照を表示する
  • Access で Microsoft Visual Basic for Applications の参照を解決する
  • 参照エラー メッセージの内容を理解する
  • 開発用コンピュータで参照の問題を解決する
  • データベース ファイルを配布する
  • 参照一覧を更新する
  • ActiveX コントロールを含むデータベース ファイルを配布する
  • ファイルを再登録する

詳細

Access データベースの参照を表示する

現在のデータベースの参照を表示するには、次の手順を実行します。
  1. データベースを開きます。
  2. Alt + F11 キーを押して Visual Basic Editor を起動します。
  3. [ツール] メニューの [参照設定] をクリックします。

Access で Visual Basic の参照を解決する

Access では、[参照設定] ボックスに表示される情報に応じて、参照ごとに適切なファイル (タイプ ライブラリ、オブジェクト ライブラリ、コントロール ライブラリなど) を読み込みます。Access では、ファイルが見つからない場合、次の手順に従ってファイルを探します。
  1. 参照ファイルが現在メモリに読み込まれているかどうかをチェックします。
  2. ファイルがメモリに読み込まれていない場合、RefLibPaths レジストリ キーが存在するかどうかをチェックします。このキーが存在する場合、参照と同じ名前の名前付き値を検索します。一致する値が検索された場合、その名前付き値が指すパスから参照を読み込みます。
  3. 次に、以下の場所で順番に参照ファイルを検索します。
    1. アプリケーション フォルダ (Msaccess.exe ファイルが存在するフォルダ)
    2. [ファイル] メニューの [開く] をクリックすると表示される現在のフォルダ
    3. オペレーティング システムが実行されている Windows フォルダまたは Winnt フォルダ
    4. Windows フォルダまたは Winnt フォルダの下のシステム フォルダ
    5. オペレーティング システムから直接アクセス可能な、PATH 環境変数に含まれるフォルダ
  4. ファイルが見つからない場合は、参照エラーが発生します。 Access が Visual Basic の参照を解決する方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
    248941 [ACC2000] Access 2000 で Visual Basic for Applications の参照を解決する方法

参照エラー メッセージの内容を理解する

ファイルが見つからない場合、またはデータベースで使用されているバージョンとファイルのバージョンが異なる場合には、いくつかのエラー メッセージが表示されます。大部分の場合は、「サポート技術情報」 (Microsoft Knowledge Base) でエラーを検索し、その資料に示された手順を実行することによってエラーを解決できますが、状況によっては、依存ファイルがプライマリ ファイルと正確に一致しないときがあります。

ここでは、表示される可能性があるいくつかの参照エラー メッセージについて説明します。ただし、これ以外の参照エラー メッセージが表示される可能性もあります。
  • "MethodName メソッドは失敗しました: ObjectName オブジェクト"

    通常、プログラムのタイプ ライブラリに問題がある場合、たとえばデータ アクセス オブジェクト (DAO) のダイナミック リンク ライブラリ (DLL) ファイルが無効な場合などにこのエラー メッセージが表示される可能性があります。「サポート技術情報」 (Microsoft Knowledge Base) にはこのようなエラー メッセージに関するさまざまな資料が用意されているので、該当する資料を検索して参照してください。
  • "式に未定義関数 'functionname' があります。"

    プログラムのタイプ ライブラリに問題がある場合、またはコードで適切なライブラリが明示的に呼び出されず、参照一覧でのそのファイルの優先順位が同じ関数名を含むファイルより低い場合、たとえば、参照一覧で DAO ライブラリより ActiveX データ オブジェクト (ADO) ライブラリの優先順位が高いときに DAO コードを使用した場合などにこのエラー メッセージが表示されます。フォームやレポートに ActiveX コントロールが含まれる場合にもこのエラー メッセージが表示されることがあります。
  • "プロジェクトまたはライブラリが見つかりません。"

    参照一覧でファイルが見つからなかった場合にこのエラー メッセージが表示されることがあります。多くの場合、このようなファイルは [参照設定] ダイアログ ボックスで [参照不可] としてマークされます。開発用コンピュータに存在するファイルが配布先コンピュータには存在しない場合もあります。 このエラーの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
    208218 [OFF2000]参照先が存在しないファイルで VBA がエラーになる
  • "変数が定義されていません。" または "ユーザー定義型は定義されていません。"

    ユーザー レベルのセキュリティ ウィザードを使用して、デフォルトで用意されているライブラリ以外のライブラリを参照するデータベースをセキュリティ保護した場合に、これらのエラー メッセージのいずれかが表示されることがあります。たとえば、セキュリティ設定されていないデータベースに存在するライブラリへの参照は、セキュリティ設定された新しいデータベースでは自動的に作成されません。
  • "実行時エラー 5"、"プロシージャの呼び出し、または引数が不正です"、または "シンボルを含んでいるライブラリは、このプロジェクトでは参照されていません。"

    [参照不可] としてマークされたデータベース、タイプ ライブラリ、またはオブジェクト ライブラリがある場合に、これらのエラー メッセージのいずれかが表示されることがあります。 関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
    231413 [ACC2000] 参照が見つからないことを示すエラー メッセージ
  • "ActiveX コンポーネントはオブジェクトを作成できません。"

    このエラー メッセージは、必ずしも ActiveX コントロールが原因であることを示すものではありません。たとえば、原因の 1 つとして、DAO オートメーション サーバーを起動できないため、ActiveX コンポーネントである DAO がオブジェクトを作成できない場合が考えられます。多くの場合、参照された機能をプログラムに提供する DLL が登録されていないか、正しく登録されていないことが原因です。 このエラーの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
    244264 [INFO] Office アプリケーションのオートメーション時にエラー 429 が発生する
    この資料は Visual Basic の観点から作成されていますが、このエラーの多くの原因が取り上げられています。

開発用コンピュータで参照の問題を解決する

コードまたは ActiveX コントロールがデフォルトでデータベースに含まれない参照に依存している場合、新しく作成した空のデータベースに別のデータベース ファイルからオブジェクトをインポートすると、参照の問題が発生する可能性があります。Access 2000 データベースのデフォルトの参照は以下のとおりです。
  • Visual Basic for Applications
  • Microsoft Access 9.0 Object Library
  • OLE Automation
  • Microsoft ActiveX Data Objects (ADO) 2.1 Library
インポート元が別の Access 2000 データベースの場合は、参照が一致することを確認します。インポート元がそれ以前のバージョンの Access である場合は、DAO 3.5 またはそれ以前が使用されている可能性があります。Access 2000 ではデフォルトで DAO 3.5 を提供していません。ADO 2.1 ライブラリへの参照を削除し (存在する場合)、DAO 3.6 オブジェクト ライブラリへの参照を追加してください。

以前のバージョンの Access からデータベースを変換する場合に、データベースに Utility.mda ファイルへの参照が含まれるときは、この参照が呼び出す関数は Access 2000 のデフォルトの参照に含まれます。このため、ほとんどの場合、この参照は削除することができます。以前のバージョンの DAO への参照がある場合、DAO 3.6 はこれらの関数を処理できるため、これらの参照も削除できます。

ライブラリへの参照を追加するには、次の手順を実行します。
  1. データベースを開きます。
  2. Alt + F11 キーを押して Visual Basic Editor を起動します。
  3. [ツール] メニューの [参照設定] をクリックします。
  4. [参照可能なライブラリ ファイル] で、ライブラリ名の横のチェック ボックスをオンにして、[OK] をクリックします。
ライブラリへの参照を削除するには、次の手順を実行します。
  1. データベースを開きます。
  2. Alt + F11 キーを押して Visual Basic Editor を起動します。
  3. [ツール] メニューの [参照設定] をクリックします。
  4. [参照可能なライブラリ ファイル] で、ライブラリ名の横のチェック ボックスをオフにして、[OK] をクリックします。

データベース ファイルを配布する

データベース ファイルの配布には、基本的に 2 つの方法を使用できます。開発用コンピュータから配布先コンピュータにファイルをコピーする方法と、ディストリビューション ウィザードを使用してセットアップ パッケージを作成する方法です。

開発用コンピュータから配布先コンピュータにファイルをコピーすると、データベース ファイルのみがコピーされます。配布先コンピュータ上で、参照一覧に表示されるすべてのファイルが使用可能であり、バージョン レベルが適切で、ファイルの相対位置が開発用コンピュータと同じであることを手作業で確認する必要があります。

ディストリビューション ウィザードを使用してセットアップ パッケージを作成する場合は、以下の「サポート技術情報」 (Microsoft Knowledge Base) を参照し、Access でランタイム アプリケーションを開発する際のチェックリストを確認してください。 このチェックリストの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
247530 [MOD2000] 配布可能なランタイム アプリケーションを作成するときによく見られる誤りを回避する方法
Access でランタイム アプリケーションを開発する場合、ランタイム アプリケーションと共にいくつかのオペレーティング システム ファイルを配布する必要があります。Microsoft Office 2000 Developer のディストリビューション ウィザードでは、これらのファイルが自動的にパッケージ化されます。状況によっては、パッケージに含まれるファイルのバージョンが開発用コンピュータにインストールされている他のアプリケーションに依存しており、そのアプリケーションがオペレーティング システム ファイルを修正している可能性があります。

通常、以下のガイドラインを使用して、ランタイム アプリケーションのインストール時に、使用するファイルのバージョンが配布先コンピュータのファイルと競合しないようにします。
  1. 任意のコンピュータで Access データベースを開発します。
  2. ハード ディスクを再フォーマットし、該当オペレーティング システム、Office および Office 2000 Developer の最も古いバージョンのみがインストールされたコンピュータ環境を作成します。このコンピュータでディストリビューション ウィザードを実行し、アプリケーションのランタイム バージョンを作成します。これにより、すべての配布先コンピュータでファイルのリビジョン レベルが適切に機能します。
  3. ハード ディスクを再フォーマットし、オペレーティング システムのみをインストールしたコンピュータ環境を作成します。この環境でランタイム アプリケーションをテストします。
    • アプリケーションが正常に実行されない場合は、アプリケーション自体に何らかの問題があります。この場合、アプリケーションを配布する前に問題を特定して修正する必要があります。
    • テスト コンピュータで正常に動作するアプリケーションが配布先コンピュータで動作しない場合は、アプリケーションではなく配布先コンピュータに何らかの問題があります。この場合、配布先コンピュータで予測される原因 (互換性の問題やファイルの破損など) を究明して解決する必要があります。

参照一覧を更新する

参照の問題が ActiveX コントロールに関する問題の場合、参照一覧を更新することによって解決できることがあります。参照一覧を更新するには、次の手順を実行します。
  1. Visual Basic Editor で、[ツール] メニューの [参照設定] をクリックします。
  2. [参照設定] ダイアログ ボックスで、オンになっていない参照のチェック ボックスをオンにし、オンにした参照をメモしてから、[OK] をクリックします。
  3. もう一度 [ツール] メニューの [参照設定] をクリックします。
  4. 先ほどオンにした参照のチェック ボックスをオフにし、[OK] をクリックします。

ActiveX コントロールを含むデータベース ファイルを配布する

ActiveX コントロールには、デザイン時ライセンスとランタイム ライセンスの 2 種類のライセンスがあります。
  • デザイン時ライセンスでは、ライセンス済み ActiveX コントロールを Office 2000 Developer から Access データベースのフォームとレポートに挿入できます。
  • ランタイム ライセンスでは、Office 2000 Developer がインストールされていないコンピュータ上の Access データベースで ActiveX コントロールを使用できますが、ライセンス済みの新しい ActiveX コントロールを挿入することはできません。ランタイム ライセンスをインストールするには、ディストリビューション ウィザードを使用して ActiveX コントロールを配布します。このウィザードによって、配布先コンピュータのレジストリにコントロールのライセンスが書き込まれます。
デザイン ビューでモジュールを開き、[ツール] メニューの [参照設定] をクリックしたときに [参照不可] のマークが表示される場合、配布先コンピュータでのコモン ダイアログ コントロールへの参照が、開発用コンピュータからインポートされたデータベース ファイルでの参照と一致しないことを示します。

配布可能なコモン ダイアログ コントロールをインストールせずにデータベース ファイルを配布すると、コントロールの参照が [参照不可] としてマークされることがあります。また、配布不可能なコントロールが配布先コンピュータに既にインストールされている場合は、ActiveX コントロールを使用するライセンスがないというエラー メッセージが表示されることがあります。

データベース ファイルがランタイム アプリケーションの一部であっても、配布先コンピュータにインストールされている配布不可能なコントロールのバージョンがランタイム アプリケーションによって提供されるコントロールのバージョンよりも新しい場合は、ActiveX コントロールを使用するライセンスがないというエラー メッセージが表示されることがあります。この問題は、セットアップ プログラムが古いバージョンのファイルで新しいバージョンのファイルを上書きしないために発生する可能性があります。

ファイルを再登録する

ファイルがレジストリに適切に登録されずに参照一覧に表示される場合があります。このような状況が疑われる場合は、以下の手順を実行してファイルを再登録します。
  1. Microsoft Windows NT 4.0 または Windows 2000 の場合、[スタート] ボタンをクリックし、[検索] をポイントして、[ファイルやフォルダ] をクリックします。
  2. [名前] または [ファイルまたはフォルダの名前] ボックスに、regsvr32.exe と入力します。
  3. [探す場所] ボックスで、ハード ディスクのルート (通常は C:) をクリックします。
  4. [サブフォルダも探す] または [サブフォルダも検索] チェック ボックスがオフになっている場合はオンにして、[検索開始] をクリックします。
  5. ファイルが見つかったら、[スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックして、[名前] ボックス内の文字列を削除します。
  6. 検索結果ウィンドウの Regsvr32.exe ファイルを [名前] ボックスにドラッグします。
  7. 手順 2. 〜 6. を繰り返しますが、ここでは FileName.dll を検索します。FileName は再登録するファイルの名前です。
  8. [名前] ボックスに Regsvr32.exe FileName.dll と入力し、[OK] をクリックします。
  9. Access で問題が引き続き発生するかどうかを確認します。
Regsvr32.exe ファイルがコンピュータに存在しない場合、他のコンピュータにこのファイルが存在するかどうかを確認します。ファイルを入手できない場合は、以下のマイクロソフト Web サイトから入手できます。 関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
161983 [ACC] Regsvr32a.exe をダウンロード センターから入手可能
: 参照を調整した後で、すべてのモジュールを必ずコンパイルしてください。モジュールが開いている状態ですべてのモジュールをコンパイルするには、[デバッグ] メニューの [database のコンパイル] をクリックします。モジュールがコンパイルされない場合は、その他にも未解決の参照がある可能性があります。

関連情報

この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 310803 (最終更新日 2004-07-28) を基に作成したものです。

プロパティ

文書番号: 310803 - 最終更新日: 2005年6月10日 - リビジョン: 2.1
この資料は以下の製品について記述したものです。
  • Microsoft Access 2000 Standard Edition
キーワード:?
kbhowto kbenv kbinfo kbinterop kbprogramming KB310803
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com