Issue:
64 ビット版 Windows オペレーティング システム上で 64 ビット版の AutoCAD Map 3D (または Civil 3D) を実行していると、以下のエラーが表示されます。
「外部コンポーネントが例外をスローしました」
「接続に失敗しました」
「データ ソース ファイルの作成に失敗しました: XXXXX」
「エラーのため接続テストに失敗しました」
これらは、ODBC 用 FDO Provider 経由で、または [マップ エクスプ ローラー] から [データ ソース] を介して Excel または Access ファイルに接続しようとしたときに発生します。
Causes:
64 ビット版の AutoCAD Map 3D (または Civil 3D) からExcel またはAccess のファイルに接続することのできる、64 ビットデータベース ドライバーをシステムにインストールする事が必要です。
Solution:
Microsoft Office がインストールされている場合
この問題が発生している場合、64 ビット版のシステムに 32 ビット版の Microsoft Office 製品がインストールされている可能性があります。
Word、Excel、Outlook 等の製品を起動し、32 ビット版と 64
ビット版どちらの Microsoft Office 製品がインストールされているか確認してください。
ヘルプ等から以下の情報を確認することができます。
32 ビット版の Micosoft Office がインストールされていた場合
1. Windows の [コントロール パネル] の [プログラムと機能] から Microsoft Office をアンインストールします
2. MicrosoftProjectProfessional
がインストールされている場合これもアンインストールします
3. 64 ビット版の Micosoft Office を取得し、インストールします
※64 ビット版の ODBC ドライバは、64 ビット版の Microsoft Office と同時にインストールされます。
Microsoft Office がインストールされていない場合
Microsoft Office が PC
にインストールされていない場合、もしくは将来インストールする計画を持っていない場合は、Microsoft から 64 ビット データベース ドライバーをダウンロードしてインストールしていただくことができます。
Microsoft Access データベース エンジン 2010 再頒布可能コンポーネント
//www.microsoft.com/ja-JP/download/details.aspx?id=13255
See Also:
今日はOSのビット数によって本来コントロールパネルに表示されるはずの設定画面が表示されない、という動作についてご報告します。 例えばWindows7の64ビットエディションがあるとします。 この構成にmysql-connector-odbcなんかをインストールしてODBCセットアップをしなきゃいけない、としたときの話です。 普通はコントロールパネルを開いて「管理ツール」を開く、その中に、「データソース(ODBC)」とあるショートカットをダブルクリックして起動します。
簡単に言えばODBCの設定画面です。64ビットOSでのODBCプロパティ
でそのWindowsには32ビット版のOfficeがインストールされています。
よくある64ビットOSに32ビットOfficeを利用する構成になっています。通常は…
図:コントロールパネル「管理ツール」
この「データソース(ODBC)」を起動するわけです。
そうするとこんな画面が開きます。
図:ODBCデータソースアドミニストレータ画面
例えば、ここの「MS Access
Database」をダブルクリックしてプロパティ画面を起動するのですが、64ビットOSの32ビットOfficeを使っている環境だと、こんな画面になってしまいます。
図:エラー画面
----------------------------------------------
---------------------------
Microsoft ODBC アドミニストレーター
---------------------------
システム エラー コード 126: 指定されたモジュールが見つかりません。
(C:\PROGRA~1\COMMON~1\MICROS~1\OFFICE14\ACEODBC.DLL) のために、Microsoft Access Driver (*.mdb, *.accdb) ODBC ドライバーのセットアップ プログラムを読み込むことができません。
---------------------------
OK
---------------------------
----------------------------------------------
続いてこんな画面が表示されます。
図:エラー画面2
----------------------------------------------
---------------------------
ドライバーの
ConfigDSN、ConfigDriver、または ConfigTranslator が失敗しました。
---------------------------
検出されたエラー:
システム エラー コード 126: 指定されたモジュールが見つかりません。 (C:\PROGRA~1\COMMON~1\MICROS~1\OFFICE14\ACEODBC.DLL) のために、Microsoft Access Driver (*.mdb, *.accdb) ODBC ドライバーのセットアップ プログラムを読み込むことができません。
---------------------------
OK
---------------------------
----------------------------------------------
「ODBC ドライバーのセットアップ
プログラムを読み込むことができません。」
とメッセージがあるのですが、確かにODBCドライバはセットアップ済みなので起動できないというのはおかしいのです。
このときはどうするのか
結論から言うと、64ビットOSのODBCデータソースはもう一つの起動ファイルから起動します。
そのファイルの格納先が
「C:\Windows\SysWOW64\odbcad32.exe」
です。
図:SysWOW64フォルダ内のファイル
このodbcad32.exeを起動すると、コントロールパネルの管理ツールから起動したODBCプロパティ画面と同じ画面が開きます。
図:ODBCデータソースアドミニストレータ画面2
全く同じ画面に見えますが、こっちから起動するとエラーは表示されず正常に動作します。
試しに「MS Access Database」をダブルクリックすると…
図:ODBC Microsoft Accessセットアップ画面
エラーメッセージは表示されずセットアップ画面が表示されます。これでセットアップ・設定を実施することができます。
つまり?
おそらく、ですが。
64ビットOSにおいてはSysWoW64によってエミュレーションしている32ビットアプリケーションたるodbcad32.exeを起動する必要がある、ということです。つまりコントロールパネルに表示されているのはそのOSのデータソース(ODBC)をセットアップする画面(UI)が表示されるのであってOfficeは32ビットだとかそれに伴ってmysql-connector-odbcもx86側をインストールしているとかいうのはOSにとってはあずかり知らぬこと、ということですね。おそらく。
なので64ビットOSにmysql-connector-odbc-x86.exeをインストールした場合には、コントロールパネルにある「データソース(ODBC)」を起動するのではなく、「C:\Windows\SysWOW64\odbcad32.exe」を起動して設定を実行します。
忘れっぽい未来の自分向けに覚えておくようにします。