プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (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_6 …
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/02/06 07:14

私が理解している範囲で説明してみると、


OLE(オブジェクトのリンクと埋め込み)のからくりが関係あるのですが、OLEとして挿入した場合、挿入したオブジェクトを画面に表示、編集、印刷するための機能(プログラム)が一緒に埋め込まれます。
そうする事によって、AccessにWordを埋め込んだデータをWordがインストールされていないPCで表示するという事を可能にしています。

容量を抑えるには、軽めのオブジェクトを探してみるとか、ファイル名を保持しておいてフォームに画像を表示する処理を実装するとか。

参考URL:http://www.nifty.com/webapp/digitalword/word/052 …
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/02/06 07:16

ツール



最適化

で容量は少し減ると思います

-------------------------------
他の方法では、
ACCESS以外のところへ
図を置いて
picture命令で呼び出す
方法あります
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/02/06 07:16

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