Microsoft access database engine 2022 アンインストール

発行: 19 Dec 2018
最終修正日: 24 Aug 2022

問題

Microsoft Access 365 に接続しようとすると、次のいずれかのエラーが発生します。

"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
"C:\Users\<username\Filepath\>accdb". Check that the path is correct and that you have access privileges for the requested file." (Microsoft Access データベース "C:\Users\<username\Filepath\>accdb" に接続できません。パスが正しいことと、要求したファイルに対してアクセス権限を持っていることを確認してください。")

または

"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 への接続を作成しようとするときにエラーが発生します。

環境

  • Tableau Prep
  • Tableau Desktop
  • Windows
  • Access 365

解決策

オプション 1:

  1. Microsoft Access データベース エンジンのドライバーをアンインストールします。ドライバーは、アプリ & 機能またはプログラム & 機能 (プログラムのアンインストール) のリストに表示されます。ドライバーのバージョンはおそらく 32 ビットです。
  2. [Tableau ドライバー] ページ (http://tableau.com/support/drivers) に移動して、 Microsoft Access > Tableau Prep に進みます。Tableau Prep では、64 ビット版のドライバーをインストールする必要があります。Tableau Desktop では手順がやや複雑になります。
  3. ドライバーのページでリンクをクリックし、https://www.microsoft.com/ja-jp/download/details.aspx?id=13255 に移動します。 ダウンロードのリンクをクリックして、"x64" が記載されているダウンロード パッケージを選択します。このドライバーをインストロールします。
  4. これで接続が正常に行われます。ドライバーへの変更を反映させるために、Tableau Prep または Tableau Desktop を再起動する必要がある場合があります。

オプション 2:

  1. MS Access の新しいバージョンにアクセスできる場合は、.mdb を Access の新しいバージョンに読み込みます。
  2. [ファイル]/[名前を付けて保存] を選択して、 新しいファイル タイプ (.accdb) として保存します。 
  3. MS Access を閉じます。
  4. Tableau を開いて .accdb ファイルを読み込みます。

オプション 3:

  1. Tableau Desktop を開きます。
  2. MS Access .mdb ファイルに接続します。
  3. その.mdb ファイルの抽出を作成します。
  4. Tableau Prep を使用している場合は、その抽出のローカル コピーを Tableau Prep の入力ノードとして使用します。

原因

32 ビット版の Microsoft Access ドライバーがインストールされました。

詳細情報

詳細については、「エラー "ドライバー…が正しくインストールされていません"」 を参照してください。

はじめに

最近は、Windows 10 PCを購入すると64bitになっています。プリインストール版のOfficeも64bitです。
Windows 10 のバージョン2004からは、OEM用にて32bitが提供されなくなります。
https://docs.microsoft.com/en-us/windows-hardware/design/minimum/minimum-hardware-requirements-overview#31-processor

企業では使用アプリケーションやExcelのマクロやVBAなどの動作も考慮して、Windows 10 64bit版でもOffice 32bit版をインスールされていることが多いです。
下記サイトでは、Microsoftの推奨値を記載しています。
Microsoft Officeにて32bit、64bitどちらを使うか問題
Office 365・2019では64bitが推奨値、Office 2016、2010、2013では32bitが推奨値です。

この記事は、Visual Basic Advent Calendar 2020の13日目の記事となります。11月22日に先行記事として書きました。Visual Basicでは記事が少ないので、今年書いた記事ならOKにしています。

Microsoft.ACE.OLEDB

64bit版Windowsには「Microsoft.Jet.OLEDB.4.0」が提供されていません。MDBやExcelの操作をしようとした場合に「'Microsoft.Jet.OLEDB.4.0' プロバイダはローカルのコンピュータに登録されていません。」のエラーが発生します。
64bit版Windowsでの「Microsoft.Jet.OLEDB.4.0」について

その場合、「Microsoft.ACE.OLEDB.XX.0」に切り替えるなどの対応が必要になります。「Microsoft.ACE.OLEDB」は64bitと32bitの両方が提供されていますし、下記表のようにサポートするファイルが多くなります。

EnginedBaseAccessTextExcel
Jet .dbf .mdb .txt
.csv
.xls
Ace .dbf
.ndx
.mdx
.mdb
.accdb
.txt
.csv
.xls
.xlsx
.xlsm
.xlsb

OLEDBプロバイダの一覧取得

.NETにはOLEDBの一覧を取得するライブラリがあるので、これをPowerShellから呼べば一覧が取得できる。

64bit版

powershell.exe
PS > (New-Object data.oledb.oledbenumerator).getElements() | select SOURCES_NAME, SOURCES_DESCRIPTION

32bit版

%SystemRoot%\SysWOW64\WindowsPowerShell\v1.0\powershell.exe
PS > (New-Object data.oledb.oledbenumerator).getElements() | select SOURCES_NAME, SOURCES_DESCRIPTION

接続文字列

  • Microsoft ACE OLEDB 12.0 connection strings
  • Excel2010以降をJetデータベースを使うには
  • VB.NETでOleDBを使ったエクセルファイルへのアクセス
  • C#でデータベースへ接続する(Microsoft Access編)

ACEプロバイダとAccesssバージョン

  • Microsoft.ACE.OLEDB.12.0(Access2007,Access2010)
  • Microsoft.ACE.OLEDB.15.0(Access2013)
  • Microsoft.ACE.OLEDB.16.0(Access2016)

※Access2013は Microsoft.ACE.OLEDB.12.0 として呼び出すと例外吐くようなので、15.0として呼び出すか、上のコンポーネントを入れます。2016は12.0 or 16.0どちらでも。
参照:ADO.NETでExcelファイルに接続する

マイクロソフトでは13という数字は忌み番のため内部バージョンはスキップされる。
13と色にまつわる話

ACEのインストール

「Microsoft.ACE.OLEDB.XX.0」は、Windowsインストーラー形式(MSI)のOfficeをインストールすれば利用できるようになります。
それ以外の方法では、「Microsoft Access データベース エンジン 再頒布可能コンポーネント」などで別途インストールする必要があります。

  • 「Microsoft Access データベース エンジン 2010 再頒布可能コンポーネント」のダウンロード
  • 「Microsoft Access データベース エンジン 2016 再頒布可能コンポーネント」のダウンロード(英語版のみ)

Accessランタイムのインスールでも可能です。

  • Microsoft Access 2013 Runtimeのダウンロード
  • Microsoft Access 2016 Runtimeのダウンロード
  • Microsoft 365 Access ランタイムをダウンロードしてインストールする

クイック実行形式のOfficeの場合

クイック実行形式は Office 2013から採用され、Office 365(Office 2019)ではクイック実行形式のみがリリースされました。

クイック実行形式の Office 製品をインストールした際に、 Office に付属している ODBC ドライバや OLEDB に関するファイルやレジストリ情報が Windows インストーラー形式をインストールした時とは異なる形で登録されます。
64bit MS-Access 2019をインストールしているのに、SQL-ServerでACE.OLEDB.12.0が使えないピンチ!!

クイック実行形式の Office をインストールすると ODBC/OLEDB が利用できないので、「Microsoft Access データベース エンジン 再頒布可能コンポーネント」などで別途インストールが必要となります。

ACEの32/64ビットの共存

Officeは32bitと64bitのサイドバイサイドインストール(共存)はできませんが、「Microsoft Access データベース エンジン」は32/64ビットの共存は可能です。

64bit版がインストール済みの場合

「Microsoft Access データベース エンジン 2016 再頒布可能コンポーネント」の32bit版をダウンロード(英語版のみ)して、コマンドプロンプト上で「/quit」コマンドを使用してインストールします。

AccessDatabaseEngine.exe /quiet

32bit版がインストール済みの場合

「Microsoft Access データベース エンジン 2016 再頒布可能コンポーネント」の64bit版をダウンロード(英語版のみ)して、コマンドプロンプト上で「/quit」コマンドを使用してインストールします。

AccessDatabaseEngine_x64.exe /quiet

もし、これでダメなら下記の方法を試して見てください。

  • Microsoft Acces Database Engine 2016 の32bit/64bit版の共存方法
  • Microsoft Access Database Engine 2016 Redistributable won't install due to 64-bit component.

AccessDatabaseEngine_X64.exeからaceredist.msiを抽出し、aceredist.msiを実行します。

AccessDatabaseEngine_X64.exe / extract:c:\ adbe2016_x64
msiexec /ic:\adbe2016_x64\aceredist.msi/passive

MSIコマンドコマンドの説明
quiet サイレント・モード、ユーザーとの対話はない
passive 無人モード - 進行状況バーのみ表示

Micosoft Access起動時にエラー

Office 32bit版で、AccessDatabaseEngine 64bitをインストールしました。
Micosoft Accessを起動した際に下記のエラーが出るようになりました。そのため、AccessDatabaseEngine 64bitをアンインストールして見るとこのエラーは出なくなりました。
Micosoft Accessを使わないならいいかも知れませんが、ユーザーに迷惑がかかりますね。

Microsoft access database engine 2022 アンインストール

Officeの共存

Officeでは同じ内部バージョンでは共存はできないが、別内部バージョンなら制限はないです。
別内部バージョンでもクイック実行形式では共存できない。

例としてOffice 365の64bitとOffice 2010の32bitは共存可能。
Office 365の64bitに、Access 2010 Runtimeの32bitはインスールすることができる。

Office リリースバージョンインストール テクノロジ
Office 365(Office 2019) 16.0 クイック実行
Office 2016 16.0 クイック実行
Office 2013 15.0 クイック実行
Windows インストーラー (MSI)
Office 2010 14.0 Windows インストーラー (MSI)
  • Can Access 2013 Runtime 32bit coexist with Office 64bit
  • 同一コンピューター上に異なるバージョンの Office、Project、Visio をインストールするためのサポート対象シナリオ

インストールエラー 1935

Microsoft Access database engine 2010をインストールしたら、下記のエラーが出てインストールできませんでした。

Microsoft access database engine 2022 アンインストール

原因

イベントログビューアを参照すると、「Microsoft.VC90.CRT」のコミットエラーのようです。
製品: Microsoft Access database engine 2010 (Japanese) -- エラー 1935. アセンブリ コンポーネント {9DA4DC8A-9731-3F0E-8BD5-FC17CA6848AD} のインストール中にエラーが発生しました。HRESULT: 0x80073712。アセンブリ インターフェイス: IAssemblyCacheItem、関数: Commit、アセンブリ名: Microsoft.VC90.CRT,version="9.0.30729.4148",publicKeyToken="1fc8b3b9a1e18e3b",processorArchitecture="x86",type="win32"

対応

下記の方法を試してみましたが、いずれも解決にいたりませんでした。

  • Error 1935 - An error occured during the installation of assembly component...
  • Windows10のOfficeインストールエラー1935(0x80131049)の対処法・解決策
  • インストールのトラブル解決!③ - 「エラー1935」

最終対応

Microsoft Access データベース エンジン 2016 再頒布可能コンポーネントならインストールすることが出来ました。
https://www.microsoft.com/ja-JP/download/details.aspx?id=54920

PS>(New-Object data.oledb.oledbenumerator).getElements() | select SOURCES_NAME, SOURCES_DESCRIPTION
SOURCES_NAME               SOURCES_DESCRIPTION
------------               -------------------
Microsoft.ACE.OLEDB.12.0   Microsoft Office 12.0 Access Database Engine OLE DB Provider
Microsoft.ACE.OLEDB.16.0   Microsoft Office 16.0 Access Database Engine OLE DB Provider

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を使用します。
昔に作ったアプリケーションの改善作業というしがらみがあって、「Microsoft.ACE.OLEDB」を使うみたいなことになるんでよね。