- ベストアンサー
BCB5でVBAのActiveXコントロールを作る
Borland C++ Builder5にて、ActivXコントロールを作っています。 今までは、自分の環境下で思ったとおり(VCLを使って、Serverにあるファイルを扱うだけなのですが)動いていました。 ちなみにそれは、MSAccessのVBAで動くものです。 今回、それを他の環境下で試験してみると、VCLの部分がまったく表示されない状態になり、ホトホト困ってしまいました。 必要なDLL群もインストールしたもつりなのですが、他に要因が推察されるようでしたら、ご教授お願いします
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
なかなか原因がつかめないので、問題の切り分けからやり直してみましょう。 1.ActiveXコントロールが正しく登録されているか? ・・・regsvr32.exeを使って手動でレジストリ登録してみてください。 2.ActiveXコントロールが使えるか? ・・・Access以外で作成したコントロールを使用するアプリを作成し、動かないPCで動かしてみてください。 3.AccessでActiveXコントロールを使ったフォームが作成できるか? ・・・新たなmdbを作成し、ActiveXをフォームに貼り付けて見てください。 てな感じですかねぇ。 あとは、Access側とすると、OfficeのSPの違いとか、 MDACのバージョンとかですかねぇ。
その他の回答 (2)
- taka_tetsu
- ベストアンサー率65% (1020/1553)
>ひょっとして、マトが外れているでしょうか? >全然、違う要因が他にあったりするのでしょうか? cc3250mt.dll borlndmm.dll これらが使用するDLLはすべて動作しないマシンでもありますか? OCXが使用するDLLだけではなく、DLLが使用するDLLも必要ですけど。 で、肝心のOCXはレジストリ登録してますか? もしくは、できるようにインストーラを作成しましたか?
補足
風邪で寝込んでいて返事が遅くなってすみません。 cc3250mtとborlndmmの使用するDLLは、すべて、前述したものの中に入っていました。 レジストリ登録は自動的にするようにインストールシールドで、設定してあります。 正直、かなり参っています。 今の延長に解決があるのかどうか?でも、なぜ自分の環境だと動くのか?
- taka_tetsu
- ベストアンサー率65% (1020/1553)
>必要なDLL群もインストールしたもつりなのですが、 つもりではわからないので、どのように? あとAccessのバージョンは同一?
補足
以下のDLLが必要なのをTDUMPにより確認し、インストールシールドで、<WinsysDIR>に入れるようにしました。 (但し、米印のファイルは、もともと相手環境にあったので入れていない。インストール後これら全部が存在することを確認) VCL50.bpl borlndmm.dll advapi32.dll * kernel32.dll * mpr.dll * gdi32.dll * user32.dll * ole32.dll * oleaut32.dll * olepro32.dll * cc3250mt.dll で、Accessのバージョンは2000です。 ひょっとして、マトが外れているでしょうか? 全然、違う要因が他にあったりするのでしょうか?
お礼
なんか、勘違いというか、特殊な調子悪い環境に騙されてしまった状態に、つき合わせてしまったようで、申し訳ありません。根気強くお付き合いいただいて、感謝しております。またの機会がありましたら、よろしくお願いいたします。このたびはありがとうございました。
補足
再び寝込んでしまって、申し訳ございません。 先日やっと、実験してみました。 結果的には、動かない環境は特別な状態になっているのがわかり、その他の環境では動いていました。 特別な環境とは、Win98から、Win2000にUPグレードしたもので、¥Windowsと¥Winntが両方あって、regsvr32 target.ocxとしても、Target.ocxが見つかりません。というメッセージが出てしまいます。また、スタートからのファイル検索にもなぜか、そのファイルが見つからない状態なのです。でも、¥WINDOWS¥SYSTEM32のDIRをとると、表示されるのです。そんなことって起こりうるのでしょうか?