今週、Office365のオフラインインストール環境で、「外部データ連結」を介したxls/xlsxへの書き戻しに不具合が生じるという報告があった。
事象の概要
Office365のオフラインインストール環境(2013か2016かクイック実行形式かは不明)にインストールしたDAブラックホール1.7で、
「外部データ連結」を介したxls/xlsxの「読み取り」はできるし解析結果も表示されるけど「書き戻し」だけが反映されないにという不具合報告であった。
ふむ、2010に対する完全な後方互換ではないかもしれないねぇ → 2013/2016
そもそも Office 2013/2016 をクイック実行でインストールした環境では、ODBCドライバーが入っていないという問題があって。このことから、Office 2013/2016 は ODBC ドライバや OLEDBコンポーネントを自身では使っていない可能性が示唆されていたんだよね。
すなわち後方互換性のために、ODBC ドライバや OLEDBコンポーネントをパッケージしているにすぎないのではないか、という印象を持った。
ベンダーがこのあたりを使ってないなら、もしODBCやOLEDB周辺に潜在的な問題があったとしても、ベンダー側に認知されにくいのではないかと思ったのだわ。
DAブラックホールでは
DAブラックホール1.7は、どのバージョンのデータベースエンジンであっても「動けばそれでよい」という思想に基づいて、実装している。
プログラムでは、起動時に
dablack.accdb (DAブラックホールの解析結果保存ファイル)
を
Provider=Microsoft.ACE.OLEDB.12.0 (Microsoft ACE OLEDB)
で開き、
そこでエラーがスローされれば、必要な Office System Driver が入っていないと判断して、
を表示する。
インストールメディアに同梱されている、AccessDatabaseEngine.exe は、Microsoft Access データベース エンジン 2010 再頒布可能コンポーネントの32bit版と同じものであり、通常はこれをインストールすることでDAブラックホール1.7が使用可能になる。
(※64bit環境では他の選択肢があることがサジェッションされる)
逆に言えば、Microsoft ACE OLEDB が使用できる状況であれば、DAブラックホール1.7はなんら案内を行うことなく起動する。データベースのバージョンは問わない。
このため、後方互換(上位互換)のデータベースエンジンが入っているときも、特に警告は出さないので、そのエンジンに問題があったとしても、ユーザーは気が付きにくいかもしれない。
データベースエンジン対応表
DAブラックホール1.7は Microsoft ACE OLEDB を使用するので、基本的には Office 2010 またはそのエンジンを用いるのが最もよい。
ただし環境や将来設計によって、32bitと64bitを使い分ける判断が必要になることもあるので、以下に対応表を示す。
環境条件 | Windows 10,8,7, Vista SP1,XP SP3 |
Windows Vista, XP SP2 | |
---|---|---|---|
MS Office2007/2010 をインストールしている | 追加エンジン不要 | 追加エンジン不要 | |
MS Office2007/2010 のいずれもイン ストールしてい ない |
OS は 32bit | 2010 Office system ドライバ AccessDatabaseEngine.exe |
2007 Office system ドライバ AccessDatabaseEngine.exe |
OS は 64bit | 2010 Office system ドライバ AccessDatabaseEngine.exe または AccessDatabaseEngine_X64. exe |
||
2007/2010 以外 の Office をイン ストールしてい る ( またはその予 定がある ) |
32bit 版 | 2010 Office system ドライバ AccessDatabaseEngine.exe |
|
64bit 版 | 2010 Office system ドライバ AccessDatabaseEngine_X64. exe |
※赤字はメディアに同梱しているデータベースエンジン
Office 2013/2016で、もし問題が生じた場合は、Office 2010またはそのエンジン(2010 Office system ドライバ)をインストールする、という順序でもいいのではないかと思う。