牛、豚、鶏、どれか一つ食べられなくなるとしたら?

いつも大変お世話になっております。m(_ _)m
Accessで以下のようなDBを作りました。

(1)Access2003で、OLEオブジェクト型のフィールドを作る。
(2)OLEオブジェクト型のフィールドプロパティは以下のように設定
 1)OLEサイズ・・・クリップ
 2)OLE表示の種類・・・アイコン
 3)OLE更新設定・・・自動
 4)作成可能OLE・・・リンク
(3)このフィールドには、TIFファイルを挿入していきます。
 (2)の設定により、オブジェクトの挿入時は
 指定したパスにあるファイルをリンクで結び、
 アイコンが表示されます。

Access2003のPCで設定したオブジェクトは、どのバージョンのPCからも閲覧できます。しかし、Access2000のPCで同じことをやろうとすると、オブジェクトの挿入はでき、2000のパソコンではダブルクリックで閲覧可能ですが、2000で設定したオブジェクトを2003で見ようとすると
「OLEサーバーが登録されていません」
「OLEサーバーを再セットアップしてください」
と出て開くことができません。

これはどういうことなのでしょうか?

まとめます。
・2003で挿入したオブジェクトは、
 2003でも2000でも閲覧可能。
・2000で挿入したオブジェクトは、
 2000では見れるが、2003では見られない。
・エラー内容は、「OLEサーバーが登録されていません」です。

どうしたらいいのか教えてください。
よろしくお願いします。

A 回答 (3件)

「OLE」は、Access限定の機能ではなく、Windows自体の機能になり、どのプログラムで、動作するかデータを保持しています



・閲覧する際、起動するプログラムは?

と、言う事でファイル名で指定した場合、どのプログラムで使用するかは、Windows自体に依存します

OLEサーバに登録が無いと言うことは、多分閲覧で起動しているプログラムが違うものを使用している、プログラムが導入されていないと言う事だと思います

手としては、両方に導入されているペイント等でOLEを指定して登録するのが、良いのだと思いますがリンクの場合、それが可能だったか出来た記憶がないです

リンクにしている理由とかあります?
リンクで行うなら、ピクチャフレームでVBAにて自動読み込みを使用した方が、MDBファイルが小さく済む反面、共用ディスク上にファイルを置いておかないと、読込が出来ないとかの欠点が出てきたりします

現在のままでは、どういう解決へ持っていくのかも判らないですが・・・
・同じプログラムを導入する
・リンクをやめて、ペイント等のどのPCにも入ってるものを使用する
・MDBから、絵のファイルを読み込みに行き表示する
の解決法くらいしか手が無かったと思いますが・・・

この回答への補足

回答ありがとうございます。
リンクにしている理由は、DB本体が重くならないようにという考えからです。
同じプログラムでないというのは、納得です。もう少し調べてみます。
ありがとうございました。

補足日時:2007/07/11 13:13
    • good
    • 0

> やりたいことは、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

って、感じで・・・読み込むのね^^
    • good
    • 0
この回答へのお礼

何度もご回答本当にありがとうございました。
挑戦してみます。

お礼日時:2007/07/11 16:00

> リンクにしている理由は、DB本体が重くならないようにという考えから


> です。

えっと、リンクにした場合、元のファイルが更新されているか?どうか?を確認に行くのと、その確認するためのファイル位置の情報が付加されて保管されます

要するに、容量はファイル位置分文字と付加情報(更新日時など)分、増えます
それと、表示する前にファイル確認を動作させるため、挙動が遅くなります

デメリットが多いように見えますが・・・メリットは、ファイルを更新した際、自動的にOLEの内部保管のデータを更新してくれます

って、事の差ですね「リンク」は・・・

この回答への補足

再度、回答ありがとうございます。
リンクに対する理解が少し違っているようでして、申し訳ありません。

やりたいことは、DBが重くならず、TIFファイルを参照し、各PCで問題なく見れることなんですが、どのようにしたらよいでしょうか?

重ね重ねお手数おかけして申し訳ありません。
アドバイスいただけたらと思います。

補足日時:2007/07/11 13:44
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A