仮想サーバー上でマクロが動かない
クライアントPCで実行していたAccessファイルを仮想サーバー上に移行し、サーバー上で自動実行させる仕組みを作りました。
意気揚々と自動実行が上手くいったか確認したところ、、
上手くいっていない。。
というか、なにも実行されていない??
Accessの格納されているフォルダを見ていると、「_Backup.mdb」というファイルができていました。
ということは、不具合で何か止まってしまったか!?
Accessで単体実行してみると、レコードセットにデータを格納するプログラム部分で止まっていました。
でも、クライアントPCではうまくいっていたんだけどなあ。。
やったこと
1.セーフモードで起動
とりあえず、セーフモードで起動してみて、実行がうまくいくか試してみます。
全然ダメでした。同じ場所で動作を停止しました。と表示されます。。
2.仮想メモリを大きくしてみる
ぜーんぜんダメでした。というか、逆にパフォーマンス悪くなるようなことをしていたと反省。
迷走しています。。
3.CPUを増強してみる
仮想サーバー側のCPUを最低スペックにしていたから、動きが悪いんだ!という仮説のもとに保守にお願いし、CPUを増強してみました。
これで解決するだろう。。
実行してみると、、
全く同じところで止まる!!
これでもだめなのか。。
4.Officeを修復してみる
大体この手のエラーはOfficeを修復すればうまくいくもんな。
と自分に言い聞かせ修復してみました。
再度実行してみると。。。
またもや上手くいかない!
画面割ったろか!
5.社内の有識者に助けを乞うてみる
もうだめ、あきらめモードです。
最後の手段で社内のITの詳しい方に相談してみました。
「マクロを作成したときのOfficeのビット数と今実行しているOfficeソフトウェアのビット数は合ってますか?」
と言われました。
そういえば確認してない。。
確認してみると、
マクロを作成しているのは32ビット。仮想サーバーのソフトウェアは64ビットでした。こ、これが原因なのか…?!
仮想サーバーのOfficeをアンインストールし、再インストールしてみます。
結果…
動いた!!!!
感謝感謝!さすが、、こんなに少ない情報でよく分かったなあ。。
でもこれでやっと自動実行できる。。
まとめ
色々なことを試した結果、
最後はOfficeのビット数というオチでした。
環境を移行する場合、移行前後のソフトウェアのバージョンはよく確認してく必要がありますね。
勉強になりました!
同じことで悩まれている方、ご参考にどうぞ(こんな初歩的なところで悩まないですね笑)