• ベストアンサー

ACCESS97のファイルサイズ

OLEオブジェクト型の4つのフィールドに写真をそれぞれ登録(1つは10KB程度)、その他いくつかのフィールドは日付、テキスト型のフールドでデータを登録しています。 わずか20件程入力したところで、最適化後にファイルサイズを確認すると、10MBです。と言うことは、単純計算で1レコード当たり500KBです。何かサイズを小さくする方法はあるでしょうか? 因みに、テーブルのみのサイズです。 宜しくお願いします。

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

  • ベストアンサー
  • PrintScree
  • ベストアンサー率25% (538/2091)
回答No.1

OLEオブジェクト型に画像ファイルを登録したのならそんなモンです。 イメージファイルをOLEオブジェクトに登録する際、Jpeg画像だったとしてもWindowsMeta画像になるので画像サイズは大きくなります。 単純計算で、縦のドット数*横のドット数*8(bit Color)となります。 実際の計算値と一致しないかも知れませんが、OLE情報などの付加情報が付いているからです。 サイズを小さくするためには、画像ファイルはディスク上にそのままにし、データベースにはパス情報だけ記録します。 データベースに画像などのマルチメディアファイルを記録するのはナンセンスです。

kurimame
質問者

補足

PrintScreesaさん、ありがとうございます。 更に教えてください。 このデータベースを数人で入力(サーバーに共有データとして置いている)しているのですが、パス情報をどのように記録したらよいでしょうか?使用している人はあまり詳しい人はいないのですが。 宜しくお願いします。

その他の回答 (1)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

OLEオブジェクト型を使用している限り画像をビットマップイメージとしてテーブルに保存するのでファイルサイズが増加していまうのはしょうがありません。 最適化してもファイルサイズは保存するたびにどんどん増えます。 >パス情報をどのように記録したらよいでしょうか? テーブルに画像のフルパスを入力するテキスト型のフィールドを作りフォームなどで表示するときにフルパスをそのコントロールのソースに代入するように使います。 パスを入力する際はあまり詳しい人でなければその画像のプロパティを開き[場所]にフルパスが表示されているのでそれとファイル名をコピーしてテーブルのフィールドやフォームの入力するコントロールに貼り付ければ簡単だと思いますが。 または 画像の保存先のホルダを決めておきそのホルダのパスをデフォルト(既定値)としておけば画像のファイル名だけの入力ですみます。 デフォルト(既定値) & ファイル名 のようにして代入すれば出来ます。

kurimame
質問者

補足

ご回答ありがとうございます。 保存方法は理解できました。 更に質問したいのですが、このパスからリンクしている画像をフォームやレポートを開いたときに表示できるのでしょうか?

関連するQ&A