家・車以外で、人生で一番奮発した買い物

こんばんは

.vbsファイルからデータベースを操作しようとして躓いています。
エクセルvbaでは動いているのに、.vbsに移植するとエラーが出てしまいます。
エラーの内容は「プロバイダーが見つかりません。正しくインストールされていない可能性があります。」です。

次のスクリプトです。

'ここから
Dim ADO_CONNECT
Dim MDBName
Dim dbCon
Dim strSQL

ADO_CONNECT = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
MDBName = WScript.Arguments(0) 'エクセルVBAの場合はハードコード
Set dbCon = CreateObject("ADODB.Connection")
dbCon.Open ADO_CONNECT & MDBName & ";"
strSQL = "命令文"
dbCon.Execute (strSQL)

'ここまで

プロバイダーの場所、バージョン、32/64ビット、あたりに問題がのかもしれませんが、調べてもよくわかりません。エクセルVBAでは動作するので、参照設定?の違いなのかもしれません。どのように解決したら良いでしょうか。

Win 7 Pro 64bit
MS Accessなし
Excel 2007 あり

A 回答 (1件)

スクリプトを32bit版ファイラーから試すと問題ありませんでした。


が、Explorer (64bitで動作)から試すと同じエラーになりました。
Explorer 64bit で動作

Wscript も64bitが呼ばれる

ADODB の64bit版は存在しないのでエラー発生の流れかと思います。
(Win7 64bit & Office 2010 64bit でもほんの少しだけ確認)

なので、
http://d.hatena.ne.jp/KenKens/20140312/1394641831
の中ほどにあるように32bit版で起動しなおすようにすれば解決するものと思われます。
    • good
    • 2
この回答へのお礼

感謝です!!

やはりそういうことでしたか。これ、本当にやっかいですね。
リンク先もよく読んでみました。そもそも今回の単発スクリプトのために改造する意味がありませんでしたので、次の流れで解決しました。

vbsファイルにデータベースファイルをドラッグアンドドロップ
vbsファイルでファイルパスを取得した上で、別のエクセルファイルを起動してそこのマクロに引数としてパスを渡し、マクロの中で処理をしてもらうことになりました。

実際、SQLも1行だけで、ドラッグアンドドロップでデータの一部だけを置き換えるための手抜きのためのスクリプトだったわけで、これで解決としたいと思います。

また賢くなりました。ほんと、皆さんのおかげです。

お礼日時:2014/11/18 13:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報