[PRB] Access 2000 または Access 2002 にアップグレードするとエラー "データベースの形式を認識できません。" が発生する

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

現象

Access 2000 データベースまたは Access 2002 データベースにアクセスしようとすると、実行している Visual Basic プログラム内で以下のエラーのいずれかが発生することがあります。

Microsoft ActiveX データ オブジェクト (ADO) または ADO データ コントロールを使用している場合、次のエラー メッセージが表示されます。
実行時エラー '-2147467259': データベースの形式 'XXX' を認識できません。
Data Access Objects (DAO) または DAO 汎用データ コントロールを使用している場合、次のエラー メッセージが表示されます。
実行時エラー '3343': データベースの形式 'XXX' を認識できません。

原因

Access 2000 と Access 2002 では、Jet 4.0 エンジンを使用して、Jet 4.0 形式のデータベース ファイルが作成されます。Jet 3.5 のコンポーネントでは、Jet 4.0 形式は認識されません。
  • ADO を使用している場合、Microsoft.Jet.OLEDB.3.51 プロバイダ経由で Access 2000 データベースまたは Access 2002 データベースに接続しようとすると、エラー -2147467259 が発生します。
  • DAO を使用している場合、Microsoft DAO 3.51 Object Library を使用すると、エラー 3343 が発生します。
  • DAO 汎用データ コントロールは、Access 2000 データベースまたは Access 2002 データベースに対しては機能しません。この資料の「解決方法」に記載されている手順に従って使用しない限り、常にエラー 3343 が発生します。このエラーは、DAO 汎用データ コントロールが Jet 3.51 に基づいており、Jet 3.51 (またはそれ以前の) データベース形式のみが認識されることが原因で発生します。

解決方法

この問題を解決するには、次のいずれかの方法を使用します。
  • Visual Studio Service Pack 4 以降をインストールします (データ コントロールを使用している場合、Connect プロパティの値を Access 2000 に設定します)。
  • ADO (または ADO データ コントロール) の場合、Microsoft.Jet.OLEDB.4.0 プロバイダを使用します。
  • DAO の場合、Microsoft DAO 3.6 Object Library への参照を追加します。
  • 汎用データ コントロールを使用する場合、DAO 3.6 レコードセットを開いてから、そのレコードセットを次のように汎用データ コントロールのソースとして割り当てます。
    Option Explicit
    Private daoDB36 As Database
    Private rs As DAO.Recordset
    Dim sPath As String
    Private Sub Form_Load()
    sPath = _
    "C:\Program Files\Microsoft Office\Office\Samples\Northwind.mdb"
    Set daoDB36 = DBEngine(0).OpenDatabase(sPath)
    Set rs = daoDB36.OpenRecordset("Customers")
    Set Data1.Recordset = rs
    End Sub
    					
  • この問題は、Visual Basic Service Pack 4 で対処されています。新しい値 (Access 2000) が Connect プロパティに追加され、DAO データ コントロールで Access 2000 データベースを開くことができます。

状況

この問題は、Visual Studio 6.0 Service Pack 4 で修正済みです。 Visual Studio Service Pack の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
194022 [VS60] SP5: よく寄せられる質問 (FAQ)

194295 [VS60] Service Pack がインストール済みか確認するには
最新の Visual Studio Service Pack をダウンロードするには、次のマイクロソフト Web サイトを参照してください。
http://www.microsoft.com/japan/developer/vstudio/download/default.htm

関連情報

Jet 4.0 の詳細については、Access 2000 のドキュメントを参照してください。

ADO と DAO の詳細については、Visual Basic のドキュメントを参照してください。

詳細については、Visual Basic と共に提供される MSDN ライブラリで、"Unrecognized Database Format" というキーワードによる検索を行ってください。

関連情報

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

この資料に含まれているサンプル コード/プログラムは英語版を前提に書かれたものをありのままに記述しており、日本語環境での動作は確認されておりません。

プロパティ

文書番号: 238401 - 最終更新日: 2004年7月21日 - リビジョン: 3.0
この資料は以下の製品について記述したものです。
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic 6.0 Enterprise Edition
  • Microsoft Access 2000 Standard Edition
  • Microsoft Access 2002 Standard Edition
  • Microsoft Data Access Components 2.5
  • Microsoft Data Access Components 2.6
キーワード:?
kbtophit kbjet kbprb kbctrl kbpubtypekc kbmsccsearch KB238401
"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