Last Update : 2008/03/24

何故、自宅のマシンでは In the different machine, it normally does not move
ある人が、アクセスログ解析ツールをつくっていました。仮になぼさんとします。(全然「仮」じゃねぇじゃん)
アクセスログって単なるテキストファイルなので、ファイル読み込んで区切り文字で区切ってテーブルに登録する、とまぁただそれだけのものです。どうせテーブルに登録するのですから、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)全然心霊体験じゃないな
みなさん、ライセンスには気を付けましょうね。


この件に関しましてご質問がございましたら、こちらまで。


この情報は、お客様の疑問・問題解決のお役に立ちましたか?
満足度を左から右へ高い順へご選択ください。


←役に立った 9 8 7 6 5 4 3 2 1 役に立たない→
この情報へのご意見、ご要望がございましたらこちらへご記入ください。
( 全角 500 文字以内 )




Top へもどる