MS Access Tips/Sample and VBA and Blog customize etc...

64bitOS、32bitOffice環境でのWSH(VBS)でAccessデータベースに接続する

VBSからAccessデータベースファイルに接続する必要があり、トライしたのだか、いろいろはまったので備忘録。

OSが64bit、Officeが32bitで、2010のPCと、2013のPCが混在しているLAN環境です。

WEBのサンプル通りに記述して実行するとエラーが出てAccessに接続できない。

VBSでAccessに接続できない

OS64bit、Office32bit環境でADO接続

まずは、

エディタで上記のコードを記述して、接続テスト.vbs として保存して、それをダブルクリック。
下記のエラー。

ODBC接続エラー

AccdbなのでACEドライバーを指定しないとダメなのかと思って、
connection.Open を下記に変更して

そして、ダブルクリック。やはりエラー

プロバイダーが見つかりません

WEB検索すると、
6.64ビット環境でVBScriptを実行する方法 - C:\Windows\SysWOW64\CScript

64bitOSだとWScriptコマンドの64bit版が既定で関連付けられており、32bitドライバーを見つけることができないらしい。C:\Windows\SysWOW64\WScript.exe が32bit版のコマンドということなので、VBSファイルのショートカットを作成して、プロパティのリンク先を、

C:\Windows\SysWOW64\WScript.exe C:\Test\接続テスト.vbs

と変更します。

vbsファイルのショートカットプロパティ

このショートカットを実行します。
フィールドの値が表示されました。成功です。

Office2013環境だと

よし、次は、このVBSファイルとショートカットを別のPCにコピーして実行。プロバイダーが見つかりません、エラーがでた。OSは同じWin7 64bit、ただOfficeが今度は2013(前のは2010)と違う。

調べてみると、データベース エンジンの再配布可能コンポーネントをインストールする必要がある場合もあるということらしい。2013だと自動でインストールされないのかも。インストールは下記のリンク先から。

Download Microsoft Access データベース エンジン 2010 再頒布可能コンポーネント from Official Microsoft Download Center

ここで32ビット版のファイル(AccessDatabaseEngine.exe)を選択してダウンロードして、コンポーネントをインストールする。この後、ショートカットを実行すると無事に接続成功。

文で書けばこれだけだが、いろいろ試行錯誤して、結局、半日仕事になってしまった。ふうっー。

拍手する

Leave a reply






Trackbacks

trackback URL
http://hatenachips.blog34.fc2.com/tb.php/421-9c25ff32
該当の記事は見つかりませんでした。