何故、自宅のマシンでは

*こちらは Access 97 での実体験ですが、Access 2002 ではこんなエラーは出ないで普通に動作するらしいです。

*かと言ってライセンスの問題がクリアできてるかっていうとそれはどうなのかあやしいので、事前に確認しようね!


 

ある人が、アクセスログ解析ツールをつくっていました。仮になぼさんとします。(全然「仮」じゃねぇじゃん)
アクセスログって単なるテキストファイルなので、ファイル読み込んで区切り文字で区切ってテーブルに登録する、とまぁただそれだけのものです。どうせテーブルに登録するのですから、Accessを使って作ることにしました。(決してAccessしかできない訳ではありません本当ですええ本当ですとも)
ファイル名を指定して読み込ませようと、なぼさんは噂によく聞くコモンダイアログとやらを使ってみることにしました。やっぱり、ファイル名ぐらい任意で指定できなきゃ使いづらいしな。
コモンダイアログコントロールは使い方も超カンタン、ほとんどフォームに貼り付けるだけでできちゃいます。おお便利便利。あっとゆう間にできちゃった。
さて、じゃあこれを家に持って帰って、さっそく使ってみるべ。(会社で仕事サボって作ってたんかい!というツッコミは却下です)家にもAccess97あるし、OKOK。

...ところが。フォームを開くと同時に、こんなエラーが発生!

「このコンポーネントのライセンス情報が見つかりません。デザイン環境でこの機能を使うために必要なライセンスがありません。」

...当然、デザインビューでなんか開いてません。普通のフォームビューで開いているのにです。

がーん!ライセンス違反?!?!なぜ?デザインできないのは判るけど、実行もできないの?!?!(;_;)


...そうなんですよ。Access は Developper 以上を購入しませんと、コモンダイアログコントロールはついてきません。自宅にあるのは(予算の関係上)Professional ですんで、ライセンス持ってないんです。
ocxファイル自体は存在するものの、(たぶんどっかの何かに付いてきたんでしょうね)Access からは一切の利用ができないんです。なんつったってライセンス無いですから。
これを解決するには、コモンダイアログの配布ライセンスがある会社のマシンセットアップキットを作ってランタイムとしてセットアップせにゃならんのです!(@_@)
ほかにも方法あるかもしれませんけど、とりあえず正規のライセンスを確保するにはそうするのがイチバン。しかし、会社のライセンスは会社のものですから、こんな個人的な理由で使うのに配布権を行使できるわけがありません。その前に、仕事サボってこんなの作ってること自体ダメなんですけどそれはおいといて

がーーーーん。なんてことでしょう。

うっかりとは言え、ライセンス違反をしてしまったなぼ。こりはなぼポリシーに重大に違反します。
ええもちろんそっこーで修正しました。コモンダイアログコントロールを使うのをやめて、comdlg32.dllを使うように(^_^;)
これならライセンスの問題は無し。(^^v)


Win32 API でコモン ダイアログの [ファイルを開く] ダイアログ ボックスを使用する方法
http://support.microsoft.com/kb/161286/ja

Access 2002 で [ファイルを開く] ダイアログ ボックスを表示および使用する方法
http://support.microsoft.com/kb/279508/ja

Microsoft Access 2003 でファイル ダイアログ ボックスを表示および使用する方法
http://support.microsoft.com/kb/824272/

以前、「Accessを使ってシステム開発するときに、気をつけることってありますか?」でも書いたことありますけど、配布にかなり気を使う必要が発生するので MDB だけで配ろうなんて思っている場合は極力ActiveXコントロールは使わないほうがいいですね。とゆーか使う前にライセンスについてよく確認しましょう。(あたりまえだけどな)身を持って体験いたしましたですはい。


その他に、自社のマシンでは動くのに客先では動かない場合に以下のような場合があります。

  • ActiveXコントロールのバージョンが違っている
    自社のマシンのバージョンが低く客先に新しいバージョンが既に入っていると、インストーラは古いバージョンを上書きしませんからバージョン不一致が出てきます。その結果モジュールコンパイルが通らなくなったり、Format関数が#Error になったりと厄介な現象が出ることがありますので要注意。

  • セットアップキットを作ったOSとセットアップ先OSが違っている
    必ず問題が発生するといい切れるものではないんですが、まぁあわせるにこしたことはないと思います。トラブルになってから調査するよりはいいですよね。
    ただし、InternetExplore のバージョンだけは絶対に意識したほうがいいです。IEは再配布ができないので、使う環境でIEを別途セットアップする必要があるんです。ActiveXがらみを除いてもトラブルが発生しやすいので、ここは必ずチェックしましょう。

  • リンクテーブルを使っている場合、リンク先を参照できない
    フォルダ構成を同じにしたけれど、ドライブ名だけが違ってるとか。MDB のリンクテーブルでは相対リンクというのができませんから結構厄介かもしれないです。ODBCリンクテーブルならDSN名さえ一致させておけばいいんだけど...
    不特定多数に配布する場合には、リンクテーブルマネージャと同等の機能を持たせる必要も出てきます。いやお客さんに手動でやってもらえるんならそれはそれでいいんですけど。

ちょっと上で紹介したとおり、いまでは FileDialog メソッドがあるのであまり参考にはなりませんが(でもFileDialogはランタイムでは使えないよ)、こんな体験もしましたよってことで。(T_T)全然心霊体験じゃないな
みなさん、ライセンスには気を付けましょうね。

トラックバック(0)

トラックバックURL: http://www.naboki.net/movabletype/mt-tb.cgi/38

Access 心霊体験集

誰も使っていないのに...

The items might be used by nobody

何故、自宅のマシンでは

Why don't work the MDB in my home PC!? No way!

このアプリケーションは不正な処理を実行しました

This application has performed an illegal operation and will be terminated.

勝手にデータが置き換わる!

The data has been changed automatically!

見えない何かが、いる。

Something is there which I cannot see it

MSDN クラウド 技術解説コミック新登場 クラウド ガール - 窓と雲と碧い空 -