• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:アクセス 画像の挿入について教えてください。)

アクセス画像の挿入について教えてください。

このQ&Aのポイント
  • アクセスを使って、商品管理に画像を取り入れようと思い苦戦しています。
  • ネット上から画像をWIN-SHOTというソフトで取り出し、bmpで保存をしても、その画像を挿入するとそのフィールドのデータとして「パッケージ」と表示されて上手に表示できません。
  • 一度保存した画像を、再度ペイントで呼び出し、「名前をつけて保存」で同じタイトルで上書きをした画像は、「ビットマップファイル」と表示され、フォームでもちゃんと表示されます。しかしながら、一度ちゃんと表示されても、しばらくして再度読み込みなおすと「パッケージ」になってしまい、表示されません。

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

  • ベストアンサー
  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.2

> とりあえずは画像をjpgで保存し、 > パッケージの状態ではありますが、PC上ではクリックすれば > 開きますので、それで管理していこうと思います。 これだとOLEを使用して、Access上に保管するってことでしょうね^^; で、なぜパッケージになるの?となると・・・ 以下の手順で、出来るかどうか確認してください (Microsoft Photo Editorが入ってる前提で書いてあります) 1.OLEフィールドを逆クリックで、「オブジェクトの挿入」 2.「新規作成」で、「Microsoft Photo Editor」を選択 (ここで、表示されるプログラムの一覧が基本的にOLEに対応してあるものですが、DDEだけで表示部のOLEが使用できないものもあるみたいです) 3.「Microsoft Photo Editor」が起動して「作成済みのイメージを開く」で、ファイルを開いてください 4.「ファイル」-「終了して戻る~」で戻ってみてください で、以上で内容が表示されれば・・・ラッキーってことで^^; 実際、PCによってWindowsのOLE設定が違うので「オブジェクトの挿入」後、「ファイルから~」で、オブジェクトの内容を表示するPCもありますが・・・残念ながら、どこでそれを設定しているOLEがあるのか私には、よく判りません^^; >> ・Imageオブジェクトを使用して、その度にディスク上のファイルから呼び出す > これは、私が今回やっているjpg保存で、パッケージでっていうことと > 同じという解釈でよろしいですか? >> ・LoadPicture関数を使用して、その度にディスク上のファイルから呼び出す で、これらの話はOLEフィールドを使用せず、ファイルの保管位置、ファイル名等をテキスト型で保管し、フォームのイベントで、ファイル名等からイメージファイルを呼び出すという事で、アクセス上にファイル自体は保管しません OLEの場合、ディスク上のイメージファイルを変更しても、基本的に更新されません あくまでも、ディスク上のイメージファイルと、Access上のイメージデータは別物になります OLEは、いろいろ改善はされてあるみたいなのですが・・・まだよく理解できないバグが潜在し、編集し表示部のデータは更新したが、編集用に保管してある元のデータは更新されてなかった、いきなりデータが破損して、表示も編集も出来なくなったなど、理解できない挙動を示すことがあるので、私自身は、極力避ける傾向にあります^^; パッケージとして表示されているのであれば、表示部はPCのアイコンデータをメタファイル化して、保存してあるはずだったと思います^^;

naochan55
質問者

お礼

おーーーーーーーーー! おーーーーーーーーーーーーーーー!!!! ありがとうございます!!! できましたー Microsoft Photo Editorで、画像を呼び出し、 ちゃんと表示されました!!! 重ね重ね、ありがとうございます。 ついでの質問というわけではないのですが、参考までに 教えていただければと思います。 このMicrosoft Photo Editorで呼び出して、 「終了して戻る」を選んだ場合、そのままMicrosoft Photo Editorは 閉じて、アクセス画面に戻りますよね。 これは、あくまでも表面上だけで表示されているのでしょうか? (例えば、ワードに画像を挿入しただけの場合、  元の保管してある画像を削除しても問題ありませんし、  ネット上からコピーしてもってきた画像も、  とくに保存することなく、ワード上で表示されますよね?) またはパワーポイントのように、プログラムの中に自動的に 保管される場所があって、保管されているのでしょうか? 実際、Microsoft Photo Editorで呼び出した際の画像と リンクしていないことは、確認しました。 本当にありがとうございました^^

その他の回答 (2)

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.3

> これは、あくまでも表面上だけで表示されているのでしょうか? > (例えば、ワードに画像を挿入しただけの場合、 >  元の保管してある画像を削除しても問題ありませんし、 >  ネット上からコピーしてもってきた画像も、 > とくに保存することなく、ワード上で表示されますよね?) > またはパワーポイントのように、プログラムの中に自動的に > 保管される場所があって、保管されているのでしょうか? OLEには、ファイルとデータをリンクさせる機能もあったりしますが、 その機能を使ってない場合、 「ワードに画像を挿入した~」 と同じ事が起こります 「またパワーポイントのように~」 と言うのも、おそらくOLEを使っているのであれば、パワーポイントのファイルの中に画像を保管してあり、別途の画像ファイルを消しても問題ありません AccessのOLEフィールドは、リンク機能を使用しない場合、ワードの様にと同じ状態で保管されてます OLEのデータとファイルをリンクさせる機能を使って、データを少なく出来るのかな?って言うのもバイナリのデータを使って調べてみた事はあるのですが、リンクしてる先のデータが増えてるだけで、リンク先が見つからない場合、保持していたデータを使ってるようです Officeで、画像(BMP、JPG、GIF等)、グラフ、数式、ワードアート等、すべてOLEを使用してます (Excel、Word自体もOLEとして貼り付けることが可能です ExcelにExcelのOLEを貼り付ける場合、芸が必要な気がしましたが^^;) OLEはAccessだけ特別と言う話ではなく、Excel、Word、PowerPoint等も同じOLEを使用し、OLE自体はOfficeのために導入されているシステムではなくWindows自体のシステムになっています

naochan55
質問者

お礼

本当にありがとうございました。 いろいろと勉強になりました。 Dxakさんのお陰で、仕事になりましたー 本当は多々お礼をしたい気持ちでいっぱいいっぱいですが、 ここでは何もできず、ポイントだけで残念です。 気持ちだけは、何千ポイントも送りたい気持ちですので~ またないているところを見かけたら、よろしくお願いします。 本当にありがとうございました。

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.1

使ってるOLEフィールドの挙動は、WindowsのOLEにに依存してます 要するに、PCの環境が一緒じゃなければ、確認のしようが無いんです^^; で、解答が付かないものと思います まずは、OLEの説明を書いてみます (独自解釈なので、合ってるとは言い難い部分がありますが><  OLEの中のバイナリデータをファイルに書き出して調べた結果で  解釈してたりします) OLEとは、 ・メタデータ(表示用ビットマップ) ・DDE用データ(編集時のデータ) ・操作用アプリケーションデータ の3つから大体構成され保存されてます OLEはマイクロソフトが提唱していた?アプリケーション間のデータ交換方式のDDEの拡張で、OLEが使えるアプリケーションも限られてきます で、ここで、振り返ってみると「メタデータ」「DDE用データ」と同じようなものを2重に保管しますので、大体記憶している量が2倍近くにファイルが大きくなります^^; Accessで画像管理する、お勧めとしては ・Imageオブジェクトを使用して、その度にディスク上のファイルから呼び出す ・LoadPicture関数を使用して、その度にディスク上のファイルから呼び出す のどちらかがお勧めです (ファイルサイズの関係上の話ね^^;、後VBAがある程度理解できないと・・・作れない問題も><) で、問題としては、データベースとイメージ画像が別のファイルになるので、すべて移動させなければならないと言うのが一番の問題で・・・、ファイルサイズが大きくなっても良いよ~^^って場合は、OLEを使いますが・・・当初の話にあったように、PCによって違うので、こっちのPCでは表示されるのに、こっちのPCでは出ないとか、Accessと違うところで悩まなくてはなりません^^;

naochan55
質問者

お礼

いつもありがとうございます。 昨日、アドバイスを頂きながら検討しまして、 とりあえずは画像をjpgで保存し、 パッケージの状態ではありますが、PC上ではクリックすれば 開きますので、それで管理していこうと思います。 上司が、画像の表示を希望していたのですが、 確かにBMPでは容量が大きすぎますしね。 >・Imageオブジェクトを使用して、その度にディスク上のファイルから呼び出す これは、私が今回やっているjpg保存で、パッケージでっていうことと 同じという解釈でよろしいですか? >・LoadPicture関数を使用して、その度にディスク上のファイルから呼び出す すみません・・・ まだアクセスは関数までたどり着いておりません・・・ また何か躓いたとき、お世話になるかと思いますが、 よろしくお願いします。 本当にありがとうございました。

関連するQ&A