• ベストアンサー

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

  • AccessのOLEオブジェクトについて

    いつも大変お世話になっております。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サーバーが登録されていません」です。 どうしたらいいのか教えてください。 よろしくお願いします。

  • AccessのOLEオブジェクト型について

    Accessのテーブルに WAVEファイルをOLEオブジェクト型として埋め込ませたWAVEデータをWIN32APIのPlaySound関数で鳴らすVBプログラムを考えています。 「ねこ」→ "にゃあ~"、「いぬ」→ "わん" といった対応で検索結果に応じたサウンドを鳴らしたいのです。 OLEオブジェクト型に埋め込まれたデータをダンプして見たところ、 [OLEのヘッダー情報] + [WAVEファイルのデータ] + [OLEのフッター情報] のような構成というところまでは、ダンプの状況から判断できるのですが… OLEオブジェクト型のフォーマットは公開されていないのでしょうか? そうだとしたら、このような質問をすることもいけないのでしょうか? だったら、なんでOLEオブジェクト型が存在するのか分かりません。 意見でも何でもいいです。情報を下さい。よろしくお願いします。

  • accessでのオブジェクト挿入について

    OLE オブジェクト型のフィールドに15KB程度の写真(JPGファイル)を2つオブジェクト挿入しただけでファイルの容量が3MB近くなってしましました。 これは仕方がないものなのでしょうか?容量を少なくする方法等はないのでしょうか? ご教授のほどよろしくお願いします。

  • Accessで作成したテーブルのOLEオブジェクトの使い方

    Accessで作成したテーブルにデータ型(OLEオブジェクト型)で画像を取り込みできるようにしました。 取り込みした画像を開くためのフォームを作成して画像を開けるようにしました。 下記の内容です。 Private Sub Form_Open(Cancel As Integer) Form.Caption = ProgName End Sub しかし「ビットマップ形式」ですと問題なく開くのですが、「JPG形式」ですと開けないのです。取り込みしたAccessテーブルのフィールドから直接だとひらけます。 Accessで作成したフォームから、「JPG形式」の画像を開くにはどうすればよろしいですか? また、画像を1000件ほど取り込みすると大きいデータベースになってしまいます。Accessのデータベースのサイズは制限があるのかしら? アドバイスいただけれは幸いです。

  • アクセスの容量がなぜか増加します

    アクセス2000でテーブルを作りエクセルからVBAを使用してテーブル更新行う処理を作ったのですが元々のデータ件数と変わらないにもかかわらず 容量を見てみると元が6メガだったものが120メガにも増えています なぜでしょうか教えてください ちなみに件数が多い為アクセスはMDEにしています どうか解答 よろしくお願いします

  • accessの上限容量2Gでは容量が足りない。

    会社の膨大なデータを正確に管理し、誰でも簡単に観覧できるように access2000でデータベースを作成中です。 データには文字データ以外にExcelデータや画像データもあります。 あまりにも膨大な量があるのでaceessの上限容量である2Gになってしまうことに困っています。 一応、画像データなどはそのまま登録すると容量が大きくなると思い、ハイパーリンクもしくは、OLEオブジェクトのリンクを使用して登録しています。 Excelデータもデータを変更する場合があるので同じ方法でリンクをかけています。 上限容量が2Gでは日々増加するデータを管理することができなくなります。何か良い方法があればアドバイスお願いします。

  • Accessの容量について

    170KBほどのAccessファイルがあります。 そのAccessのレポートでデザインビューから 150KBほどのpngの画像をピクチャとして取 りこむと、なぜかAccessの容量が170KBから 22,000KBにまで膨れ上がってしまいます。 なぜ、このようなことが起こるのでしょうか? また、容量を肥大化させることなくpngの画像 をピクチャとして取り込むことは可能なのでし ょうか? 教えてくださいm(_ _)m

  • アクセスに「OLEオブジェクト型」で写真を入れたい

    1.テーブルのデータ型を「OLEオブジェクト型」にしで 2.フォームを作成して「顔写真」の項目も設けます 3.写真を挿入するときは「挿入」→「オブジェクト」 →「ファイルから」にチェックして該当の写真ファイルを選択して 入力します ↓結果 写真枠にファイル名しか入りません ダブルクイックすれば写真がでますが ダブルクイックしなくとも、写真枠に写真を表示させたいです 同じやりかたで、bmpファイルのときは 目的とおり写真が表示されます つかっているファイル形式は、gifとかです WibdowXP Office2003です

  • ACCESS 97 で OLEオブジェクトを操作できません

    ハードディスククラッシュで新しいHDに再セットアップをしたのですが、ACCESS97でテーブルにビットマップを挿入した所 OLEオブジェクトを操作できません。 OLEサーバーが登録されていません。 OLEサーバーを再セットアップしてください。 とメッセージが表示しフィールドはOLEオブジェクトは空ですとなってしまいます。 以前何処を設定したのか覚えていなく困っています 方法をご存知の方よろしくお願い致します。

  • ACCESSで容量が50MBになったので軽くしたい

    ACCESSでDBを作成したのですが、 容量が重く動作も重たいです。 中身は、テーブルが1万件~5万件のデータが4つと フォームが1つしかありません。 ツール→データベースユーティリティ→最適化 をしましたが、変わりません。 どうしたらいいのでしょうか。 宜しくお願いします。

専門家に質問してみよう