2017/01/14

"'Microsoft.Jet.OLEDB.4.0' プロバイダーはローカルのコンピューターに登録されていません。" エラーの対処方法


64ビットの Windows 環境(私の場合は Windows 10) で、PowerShell を使用して Access の MDB にアクセスしようとしたら以下のようなエラーが表示されて処理を実行することができませんでした。

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

これは困ったなと思いネットでいろいろ調べてみると、どうやら Windows の 64 ビット環境でアプリケーションも 64 ビットで動作している場合にこのエラーが発生している模様。

 

 

これは Microsoft.Jet.OLEDB.4.0  は、32ビットバージョンはあるけれども、64ビットバージョンが存在していないためです。

ですので、回避方法は Visual Studio であれば CPU を Any から x86 に変更し、PowerShell であれば PowerShell (x86) を使用してスクリプトを実行するようにします。

PowerShell (x86)  は、Windows 8.1 ではコントロールパネルの管理ツールに入っていましたが、Windows 10 ではスタートメニューに入っているので簡単に呼び出すことができます。

ところで、なんで Microsoft.Jet.OLEDB.4.0 の64ビット版がないのかというと、Microsoft がアプリケーションのデータベース としてMDB を利用することを推奨しておらず、今後は SQL Server Express Edition か SQL Server Compact Edition の利用を推奨しているためだそうです。

詳しくは以下の記事を参照してください(英語)

まあ、確かに配布のことを考えると SQL Server Compact Edition の方が有利ですが、ドライバーを提供しないのは既存ユーザーにやさしくないかなとは思いますね。


スポンサーリンク


このエントリーをはてなブックマークに追加




Twitter ではブログにはない、いろんな情報を発信しています。


コメント

コメントを書く



プロフィール

  • 名前:fnya
    経歴:
    SE としての経験は15年以上。様々な言語と環境で業務系システム開発を行い、セキュリティ対策などもしていました。現在は趣味SE。

    Twitter では、ブログでは取り上げない情報も公開しています。


    ブログについて

    このブログは、IT、スマートフォン、タブレット、システム開発などに関するさまざまな話題を取り上げたり、雑感などをつづっています。


    >>ブログ詳細
    >>自作ツール
    >>運営サイト
    >>Windows 10 まとめ

    Twitter のフォローはこちらから Facebook ページはこちら Google+ページはこちら RSSフィードのご登録はこちらから