"An error occurred while communicating with Microsoft Access. Download and install the drivers and then connect (Microsoft Access との通信中にエラーが発生しました。ドライバーをダウンロードおよびインストールしてから接続してください。) Unable to connect to the Microsoft Access database または "The drivers required to connect to the data source are not installed. The error may need to be resolved through local configuration changes on the Tableau side. Database error 0x80040154: Class not registered Unable to connect to the Microsoft Access
database "<filepath>.accdb". Check that the path is correct and that you have access privileges for the requested file." ("データ ソースに接続するために必要なドライバーがインストールされていません。エラーを解決するには、Tableau 側のローカル構成の変更が必要になる場合があります。データベース エラー 0x80040154: クラスが登録されていません。Microsoft Access データベース "<filepath>.accdb" に接続できません。パスが正しいことと、要求したファイルに対してアクセス権限を持っていることを確認してください。") Tableau Prep で Access への接続時にファイル名を選択した後、または Tableau Desktop で Microsoft Access への接続を作成しようとするときにエラーが発生します。 はじめに最近は、Windows 10 PCを購入すると64bitになっています。プリインストール版のOfficeも64bitです。 企業では使用アプリケーションやExcelのマクロやVBAなどの動作も考慮して、Windows 10 64bit版でもOffice 32bit版をインスールされていることが多いです。 この記事は、Visual Basic Advent Calendar 2020の13日目の記事となります。11月22日に先行記事として書きました。Visual Basicでは記事が少ないので、今年書いた記事ならOKにしています。 Microsoft.ACE.OLEDB64bit版Windowsには「Microsoft.Jet.OLEDB.4.0」が提供されていません。MDBやExcelの操作をしようとした場合に「'Microsoft.Jet.OLEDB.4.0' プロバイダはローカルのコンピュータに登録されていません。」のエラーが発生します。 その場合、「Microsoft.ACE.OLEDB.XX.0」に切り替えるなどの対応が必要になります。「Microsoft.ACE.OLEDB」は64bitと32bitの両方が提供されていますし、下記表のようにサポートするファイルが多くなります。
OLEDBプロバイダの一覧取得.NETにはOLEDBの一覧を取得するライブラリがあるので、これをPowerShellから呼べば一覧が取得できる。 64bit版
32bit版
接続文字列
ACEプロバイダとAccesssバージョン
※Access2013は Microsoft.ACE.OLEDB.12.0
として呼び出すと例外吐くようなので、15.0として呼び出すか、上のコンポーネントを入れます。2016は12.0 or 16.0どちらでも。 マイクロソフトでは13という数字は忌み番のため内部バージョンはスキップされる。 ACEのインストール「Microsoft.ACE.OLEDB.XX.0」は、Windowsインストーラー形式(MSI)のOfficeをインストールすれば利用できるようになります。
Accessランタイムのインスールでも可能です。
クイック実行形式のOfficeの場合クイック実行形式は Office 2013から採用され、Office 365(Office 2019)ではクイック実行形式のみがリリースされました。
クイック実行形式の Office をインストールすると ODBC/OLEDB が利用できないので、「Microsoft Access データベース エンジン 再頒布可能コンポーネント」などで別途インストールが必要となります。 ACEの32/64ビットの共存Officeは32bitと64bitのサイドバイサイドインストール(共存)はできませんが、「Microsoft Access データベース エンジン」は32/64ビットの共存は可能です。 64bit版がインストール済みの場合「Microsoft Access データベース エンジン 2016 再頒布可能コンポーネント」の32bit版をダウンロード(英語版のみ)して、コマンドプロンプト上で「/quit」コマンドを使用してインストールします。
32bit版がインストール済みの場合「Microsoft Access データベース エンジン 2016 再頒布可能コンポーネント」の64bit版をダウンロード(英語版のみ)して、コマンドプロンプト上で「/quit」コマンドを使用してインストールします。
もし、これでダメなら下記の方法を試して見てください。
AccessDatabaseEngine_X64.exeからaceredist.msiを抽出し、aceredist.msiを実行します。
Micosoft Access起動時にエラーOffice 32bit版で、AccessDatabaseEngine 64bitをインストールしました。 Officeの共存Officeでは同じ内部バージョンでは共存はできないが、別内部バージョンなら制限はないです。 例としてOffice 365の64bitとOffice 2010の32bitは共存可能。
インストールエラー 1935Microsoft Access
database engine 2010をインストールしたら、下記のエラーが出てインストールできませんでした。 原因イベントログビューアを参照すると、「Microsoft.VC90.CRT」のコミットエラーのようです。 対応下記の方法を試してみましたが、いずれも解決にいたりませんでした。
最終対応Microsoft Access データベース エンジン 2016
再頒布可能コンポーネントならインストールすることが出来ました。
Microsoft.ACE.OLEDB.12.0 と Microsoft.ACE.OLEDB.16.0 のドライバーが両方ともインストールされますので、接続文字列を変更しなくても、Access 2010と同じ「Microsoft.ACE.OLEDB.12.0」がそのまま使用できます。 最後に新しくアプリケーションを作るならローカルDBとしてmdbやaccdbとか使用しないで「sqlite」を使用します。Excelファイルを読むにしてもEEPlusやNPOIやClosedXmlを使用します。 |