CreateObject("SAP.Functions") でエラー(32bit版のwscriptで解決)

2014年6月25日水曜日

SAP vbs

t f B! P L
いや~、相当悩んだ!

SAPから、とあるデータを定期的に抽出する要件があったので、
昔作成したvbsを少し改変して使おうと思ったら。

Set functionCtrl = CreateObject("SAP.Functions")

という記載がある行で引っかかった。
ActiveXコンポーネントはオブジェクトを生成できません。
というエラー。



・ちょっと古めのPCで試してみると、動く。
 そりゃそうだ、ただのCreateObjectだもの。

・Accessに組み込んだものを、エラーが出るPCで実行すると、やはり動く。
 同じコードなのに、ワケが分からん。

・SAPのGuiがちゃんとインストールできていないかと思って、入れ直すが効果なし。
 どういうことだ?



いろいろ調べると、OSのバージョンが影響しているようだ。

「32ビット版のコンポーネント(ODBCドライバなど)を使用しているVBScriptのプログラムを64ビット版のWindowsで実行すると、実行時エラーが発生します。64ビット版のWindowsでは、CScriptコマンドも自動的に64ビット版が用いられるためです。」

だそうです。orz

「C:\Windows\SysWOW64\WScript.exe」が、32bit版のwscriptコマンドだそうで、
コイツにvbsを実行させると良いそうだ。

「C:\Windows\SysWOW64\WScript.exe hogehoge.vbs」

というbatファイルを同じディレクトリに置き、それをキックすることで無事実行できた。
ふ~、スッキリ!!

このブログを検索

サイトマップ

  • ()
  • ()
もっと見る

Google検索

マルウェア「Emotet」に感染したくないから、「EmoCheck」と「EmoKill」の使い方、利用方法をまとめてみた!

  はじめに 世間を騒がしている「Emotet」。2014年ごろから確認されているマルウェアだが、流行と鎮静化を繰り返しながら変異を続けており、今もなお大きな影響を及ぼしている。2020年は、多数の企業が被害を受けた年になった。 Emotetに一旦感染するとやっかいだ。そのモジュ...

QooQ