• ベストアンサー

MSアクセスのOLEオブジェクト貼付時の容量増加について

テーブルでOLEオブジェクとに設定して、フォーム上で画像を挿入したのですが、挿入した画像の容量は26キロバイトなのに、アクセスデータの容量が驚いた事に300キロバイトだったのに、26キロバイトの画像を挿入したら300キロバイトが2400キロバイト(2.4Mバイト)になってしまうのです。 これはどうしようもないことなのでしょうか?それとも容量の増加を減らす手立てはありますでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • yoisho
  • ベストアンサー率64% (331/516)
回答No.3

挿入されている画像は JPEG 形式のものでしょうか? Access で 画像を OLE オブジェクとして扱う場合は、おそらく(元画像が圧縮された JPEG であっても)非圧縮のビットマップ(BMP形式)として取り込まれると思いますので、かなりサイズが大きくなってしまうはずです。 これは Access の仕様ですので、どうしようもありません。 MDB のファイルサイズを大きくしたくなければ、#1の方がおっしゃっているように、画像ファイルを別の場所に置くしかないと思います。 具体的には、テーブルには画像ファイルのファイル名のフルパスの文字列(例えば、C:\Pictures\画像1.jpg)を格納しておき、イメージコントロールとして Pictureプロパティにそのフルパスを設定して(埋め込み出はなくリンクで)フォームに表示する方法があります。 詳しくは、参考URL の説明が具体的でわかりやすいと思います。 (サンプルのダウンロードもできます。) もし、画像ファイルを入れるフォルダーを常に MDB ファイルと同じ場所に置くようにするなら、画像のファイル名だけをテーブルに格納しておけば、 「MDBのあるフォルダーのフルパス & "\" & 画像ファイルのフォルダー名 & "\" & 画像ファイル名」 で、画像ファイルのフルパスが得られます。 「MDBのあるフォルダーのフルパス」の取得は、 http://www.okweb.ne.jp/kotaeru.php3?q=210414 が参考になると思います。

参考URL:
http://www.accessclub.jp/samplefile/samplefile_63.htm
hikari_tai
質問者

お礼

お礼遅れて申し訳御座いません。 貴方様のアドバイスが一番分かりやすかったです。 有難う御座いました。

その他の回答 (2)

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.2

私が理解している範囲で説明してみると、 OLE(オブジェクトのリンクと埋め込み)のからくりが関係あるのですが、OLEとして挿入した場合、挿入したオブジェクトを画面に表示、編集、印刷するための機能(プログラム)が一緒に埋め込まれます。 そうする事によって、AccessにWordを埋め込んだデータをWordがインストールされていないPCで表示するという事を可能にしています。 容量を抑えるには、軽めのオブジェクトを探してみるとか、ファイル名を保持しておいてフォームに画像を表示する処理を実装するとか。

参考URL:
http://www.nifty.com/webapp/digitalword/word/052/05270.htm
hikari_tai
質問者

お礼

大変有力なアドバイス有難う御座いました。

  • ttk11
  • ベストアンサー率25% (40/154)
回答No.1

ツール ↓ 最適化 で容量は少し減ると思います ------------------------------- 他の方法では、 ACCESS以外のところへ 図を置いて picture命令で呼び出す 方法あります

hikari_tai
質問者

お礼

最適化による容量の軽減は分かっていましたが、リンクでの画像の指定などはしりませんでした。 アドバイス有難う御座いました。

関連するQ&A