- ベストアンサー
AccessのOLEオブジェクトについて
- AccessのOLEオブジェクトについて説明します。2003で挿入したオブジェクトは、2003でも2000でも閲覧可能ですが、2000で挿入したオブジェクトは2003では閲覧できません。エラーメッセージには「OLEサーバーが登録されていません」と表示されます。
- Access2003でOLEオブジェクト型のフィールドを作り、TIFファイルを挿入する方法について説明します。OLEオブジェクト型のフィールドプロパティを設定し、パソコンのバージョンによって挿入したオブジェクトの閲覧が制限されることがあります。
- AccessでOLEオブジェクトを挿入する際の注意点を説明します。特定のバージョンのパソコンで挿入したオブジェクトを異なるバージョンのパソコンで閲覧する際には、OLEサーバーが適切に設定されているかどうかを確認する必要があります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
「OLE」は、Access限定の機能ではなく、Windows自体の機能になり、どのプログラムで、動作するかデータを保持しています ・閲覧する際、起動するプログラムは? と、言う事でファイル名で指定した場合、どのプログラムで使用するかは、Windows自体に依存します OLEサーバに登録が無いと言うことは、多分閲覧で起動しているプログラムが違うものを使用している、プログラムが導入されていないと言う事だと思います 手としては、両方に導入されているペイント等でOLEを指定して登録するのが、良いのだと思いますがリンクの場合、それが可能だったか出来た記憶がないです リンクにしている理由とかあります? リンクで行うなら、ピクチャフレームでVBAにて自動読み込みを使用した方が、MDBファイルが小さく済む反面、共用ディスク上にファイルを置いておかないと、読込が出来ないとかの欠点が出てきたりします 現在のままでは、どういう解決へ持っていくのかも判らないですが・・・ ・同じプログラムを導入する ・リンクをやめて、ペイント等のどのPCにも入ってるものを使用する ・MDBから、絵のファイルを読み込みに行き表示する の解決法くらいしか手が無かったと思いますが・・・
その他の回答 (2)
- Dxak
- ベストアンサー率34% (510/1465)
> やりたいことは、DBが重くならず、TIFファイルを参照し、各PCで問題 > なく見れることなんですが、どのようにしたらよいでしょうか? とすると、環境にもよるのですが、ネットワーク上の共用フォルダ上にファイルを保管し、そのパス名とファイル名を保管しておいて、イメージコントロール上に、フォームのレコード移動時のイベントでVBAにてイメージコントロール上に読み込むと言うのが、MDBが重くならないでフォーム上に描画出来ます ダブルクリック時にWindowsに割り当てたプログラムを使用して編集するようにも設定できますが・・・同じ共有ディスク上のファイルを編集するのでバックアップなどは、気をつけてやっていた方が良いのかもしれません 例) Me.LoadImage : フォーム上に作成したイメージコントロール Me.Test : レコードのパス名&ファイル名 "\\[共用フォルダ名]\[ファイル名].TIF" Private Sub Form_Current() If Dir(Me.Test, vbNormal) <> "" And Not IsNull(Me.Test) Then Me.LoadImage.Picture = Me.Test Else Me.LoadImage.Picture = "" End If End Sub って、感じで・・・読み込むのね^^
お礼
何度もご回答本当にありがとうございました。 挑戦してみます。
- Dxak
- ベストアンサー率34% (510/1465)
> リンクにしている理由は、DB本体が重くならないようにという考えから > です。 えっと、リンクにした場合、元のファイルが更新されているか?どうか?を確認に行くのと、その確認するためのファイル位置の情報が付加されて保管されます 要するに、容量はファイル位置分文字と付加情報(更新日時など)分、増えます それと、表示する前にファイル確認を動作させるため、挙動が遅くなります デメリットが多いように見えますが・・・メリットは、ファイルを更新した際、自動的にOLEの内部保管のデータを更新してくれます って、事の差ですね「リンク」は・・・
補足
再度、回答ありがとうございます。 リンクに対する理解が少し違っているようでして、申し訳ありません。 やりたいことは、DBが重くならず、TIFファイルを参照し、各PCで問題なく見れることなんですが、どのようにしたらよいでしょうか? 重ね重ねお手数おかけして申し訳ありません。 アドバイスいただけたらと思います。
補足
回答ありがとうございます。 リンクにしている理由は、DB本体が重くならないようにという考えからです。 同じプログラムでないというのは、納得です。もう少し調べてみます。 ありがとうございました。