みど情

雑学の箱

業務と関係あるorない小話や、備忘録的なものを溜めておく箱です。

2015-08-03・コンピュータの話

MS Officeのアーキテクチャ(32/64bit)とODBCと

先日嵌ってしまったので備忘メモです。
アーキテクチャという語は、さまざまな文脈で使われて捉えどころの難しい用語だと思いますが、本稿では32bitなのか、64bitなのかという意味で使っております。

ODBC使い慣れている方には常識レベルかと存じますが…
使い慣れたExcelなどから、ハイエンドやオープンソースなど種々のRDBMSを利用したいときの頼もしい助っ人、ODBC
ところで、MySQLやSQLiteなどでは、ODBCドライバーが32bit版と64bit版と、アーキテクチャ別に提供されています。では、どっちを使えばトラブらないのか?
結論から言うと、
ODBCドライバーのアーキテクチャは、OSのアーキテクチャではなくて、アプリケーションのアーキテクチャと合わせればよい。
ということです。

例)
Windowsが64bit
Officeが32bit
だったら、ODBCドライバーは32bitのほうをインストールして使う必要があるわけですネ!

だめな例)
Windowsが64bitだからドライバーも64bitがいいよね~てなこと思いながら64bitのODBCドライバー(この例ではSQLite3)だけインストールした状況で、32bitのExcelを使い、VBAにて
Set db = New ADODB.Connection
db.ConnectionString = "Driver=SQLite3 ODBC Driver;Database=C:\path\to\dbfile"
db.Open
としてDBへの接続を試みると、うまくいきません。

DSN未設定の場合(上記の例)
エラー 80004005 「データ ソース名および指定された既定のドライバーが見つかりません。」

DSN設定済の場合(例:db.ConnectionString = "DSN=SQLite3ODBC")
「指定されたDSNには、ドライバーとアプリケーションのアーキテクチャの不一致が含まれています。」

エラーになります。

さて、使っているOfficeは32bit?64bit?どっちでしょう??
MS Officeのアーキテクチャを確認する手順は、下記画像のとおり、ファイルタブで現れる画面からアカウント○○○のバージョン情報をクリックします。画像はExcel 2013での例です。

なお、Microsoftによれば、32 ビットの Office がほとんどのユーザーにお勧めです。…とのことです。
以上参考になることがありましたら幸甚です。

バージョン情報を開く

この例では32bit

関連情報 Microsoftサポート「Office 2013 の 64 ビット版」

コンピュータの話 一覧   
▲このページの最上部へ