-1

私はプログラミングの入門コースを受講している学生で、データベースへのアクセスに問題があります。私は Visual Studio 2010 Professional と Microsoft Office 2013 Developers Preview を使用しています (プレビューを使用する理由は、貧弱な大学生であるためです)。

Visual Studio 内でデータベース接続を作成するたびに (私たちの教授がデータベースの概念を紹介しています)、新しいデータ接続の作成を選択する場所に移動し、Microsoft Access データベース ファイルをデータ ソースとして選択し、.NET Framework を選択します。データ プロバイダーとしての OLE DB のプロバイダー (ファイルは .accdb、ファイル名: Northwind sales web database)。

次の画面に進み、データベース ファイルを参照して選択し、テスト接続を選択すると、エラー メッセージが表示されます

"認識できないデータベース形式 'C:\Users\Isaiah\Documents\Northwind sales web database.accdb'."

少し調べてみたところ、Office 2007 および 2010 でこの問題が発生し、「Microsoft Access データベース エンジン 2010 再頒布可能パッケージ」および/または「2007 Office System Driver: Data Connectivity components」をインストールすることで修正できる人がいることがわかりました。

私は両方を試しました。
2010 Redistributable をインストールすると、認識されないデータベース フォーマット エラーが表示されなくなりますが、代わりにエラーが表示されます。

"Microsoft.ACE.OLEDB.12.0' プロバイダーがローカル コンピューターに登録されていません。".

このエラーが発生した一部の人々は、2010 Redistributable の上に 2007 Office System Driver をインストールすると問題が解決することを発見しました。
これを試してみましたが、古いエラー メッセージが再び表示されるだけです。
違いがあるかどうかを確認するために、1 つのファイルをインストールしてみましたが、違いはありません。解決策は表示されません。一部の人々は、x86 システム用にコンパイルするように設定されていることを確認することでこれが解決することを発見しましたが、私には当てはまりません。

Windows 8 64 ビットを実行していますが、Windows 7 64 ビットを実行しているときにもこの問題が発生しました。
システムが正常に動作しないと、アイデアが不足し、クラスに遅れを取り始めるので、助けてください。

どんな考えでも大歓迎です

4

1 に答える 1

2

どのプラットフォーム用にアプリケーションをコンパイルしますか? 通常、 と の 2 つのオプションがありx86ますAnyCPU。コンパイルするとAnyCPU、コードは 64 ビット システムでは 64 ビット コードとして実行され、32 ビット システムでは 32 ビット コードとして実行されます。コンパイルするとx86、コードは常に 32 ビットおよび 64 ビット システムで 32 ビット コードとして実行されます。そうAnyCPU当然の選択のようです。ここで、「Microsoft Access データベース エンジン 2010 再頒布可能パッケージ」を開発する Microsoft チームを想像してみてください。彼らは、ドライバーの個別のバージョンを構築することを選択します。その結果、AnyCPU 用にビルドし、32 ビット バージョンのエンジンがインストールされている 64 ビット システムで実行すると、それらのコードを使用できなくなります。64 ビット バージョンをインストールする必要がありますが、現在は 64 ビット バージョンの Office をインストールする必要に直面しています。そうしないと、それを使用できません。アプリを 32 ビット コードに切り替えて、x86 ターゲット プラットフォームを選択することをお勧めします。(いいえ、同じマシンに両方のバージョンをインストールすることはできません)

于 2013-02-22T18:18:26.960 に答える