人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ACCESS2003で、OLEオブジェクト型のフィールドにJpegファイルの画像を埋め込む処理をVBAで記述したいのですが、
参考になるページはないでしょうか?

●質問者: malts
●カテゴリ:コンピュータ
✍キーワード:JPEG VBA オブジェクト ファイル フィールド
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● kn1967
●27ポイント

ADOの場合の例

画像を保存する(AppendChunkメソッド) - AccessVBA モーグ即効テクニック集

OLEオブジェクト型でJPEGを取り込むと元のファイルサイズに対して数倍?十数倍の容量に展開(肥大)した状態でMDB内部に格納されるため、テーブルやフォームなどだけでなく作業領域も含んでいるMDBファイルは破綻しやすい状況になります。

ネット上を検索してもサンプルに出会えないのは、破綻を恐れて使う人が少ないからです。知識としては持っていても、使うことは控えたほうがよろしいかと思います。

画像ファイルへのリンクで代用なさることをお勧めします。

◎質問者からの返答

数KBの画像を千個程度しか格納しないのでMDBに入れてしまってもいいかなと思ったのですが、

避けたほうが無難かな。。


2 ● coetan
●27ポイント

ここで検索してみて、なかったら質問しても良いかもしれません。

※機種依存文字を使用したり、バージョン等明記がなかったり、過去ログ読んでなかったりすると、軽く怒る方が常駐してるので注意

http://www.accessclub.net/search1/namazu.cgi?query=2003+OLE+JPEG...

◎質問者からの返答

ありがとうございます。

のぞいてみます。


3 ● kn1967
●26ポイント

http://office.microsoft.com/ja-jp/access/HP052802251041.aspx

イメージを埋め込むと、データベースのサイズが急激に増大し、動作が遅くなる可能性があります。GIF ファイルや JPEG ファイルを格納する場合は、OLE により各イメージ ファイルの表示情報を含む追加のビットマップファイルが作成され、これらの追加ファイルは元のファイルよりもサイズが大きくなる可能性があるため、特にその傾向が見られます。

当方でのテストでは平均して50倍程度になりましたので、10KBのJPEG形式1000個あるとして500MB程度になると計算できます。

MDBの上限は作業領域なども含めて2GBとなるため、500MBは非常に巨大な足かせになる可能性があります。

ただし、この50倍という数値は元の画像の圧縮率などにも大きく依存するので、そちらでも手動で20-30個くらいサンプルを取って見られたほうがよろしいかと思います。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ