• ベストアンサー

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

ACCESS超初心者です。フォーム(単票形式)にデジカメで取った写真を取り込んで1レコードにつき1枚の写真を表示したいのですが。 マニュアルなどに載っているとおり、挿入-オブジェクトでファイルから取り込んでいますが、件数が多い場合1件ずつすると非常に手間がかかります。 何かよい方法はないでしょうか。

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

  • ベストアンサー
  • KojiS
  • ベストアンサー率46% (145/312)
回答No.2

まず、写真は bmpファイルでないとうまくいきません。 手順として、 1.テーブルに「ファイル名」等の名前でフィールドを追加し、データ型をテキストにします。 2.フォームには、「ツールボックス」にある、「イメージ」を貼り付けます。 3.フォームの Form_Currentで「ファイル名」にデータが入っている場合に、貼り付けた「イメージ」の Pictureプロパティに「ファイル名」をフルパスで指定してやります。 なのですが、(3)で、コードを書かなくてはいけません。コード(VBA)がわからなければ、今まで通り「オブジェクトの挿入」をするしかありません。 ここでコードを書いてしまっていてはためにならないと思いますので、ACCESSのヘルプを見ながら勉強してください。それでわからないことが出れば、また質問してください。

kalmit
質問者

お礼

重ね重ね、親切なアドバイス、ありがとうございます。 なんとか勉強してみます。

その他の回答 (1)

  • KojiS
  • ベストアンサー率46% (145/312)
回答No.1

カテゴリーはデータベースの方が良いと思います。 オブジェクトを使わない方法ではだめでしょうか? よくあるやり方として、レコードにはファイル名を保存しておき、フォームにイメージコントロールを貼り付けます。レコードを移動するたびにイメージコントロールのPictureプロパティを変更すれば表示されるようになります。こうすれば、データベース自体に写真データが埋め込まれることがないのでデータベースファイルのサイズが増えることもありません。 ただし、この場合、写真は bmp等の Windowsが標準で使用できる形式にしないといけませんが。それ以外の形式を表示したい場合は、別途コントロールを買うか探さないといけません。 もしくは、リンクして表示するかです。 どちらにしろ、コードで書かないといけませんが。 挿入でやるより管理もしやすいと思います。

kalmit
質問者

補足

ありがとうございます。せっかくなんですが初心者なので、レコードのファイル名の保存,イメージコントロールの貼り付け,などがわかりません。それも全部コードで書き込むということですよね。

関連するQ&A

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

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

  • Access2000でフォームにレコードを2件表示させる

    Access2000でひとつの単票形式のフォームの中にレコードを2件ずつ表示させることってできるのでしょうか?とっても困ってます。

  • アクセスで指定したレコードをフォームで開く方法?

    アクセスで、帳票形式のフォームで選択したレコードの内容を、詳細を表示する用のフォーム(単票形式)で開きたいのですが、どうしたらよいのでしょうか?(初心者です) 例えば、帳票形式のフォームで「予約番号:1」のレコード 選択した状態で、ボタンをクリックすると、 詳細を表示する用の単票形式のフォームの「予約番号:1」のレコードが表示されるようにしたいのです。 マクロでは出来なそうなので、VBAで・・・というところまでしか検討がつきません。 使用しているのはアクセス2002です。 どなたかご存知の方がいらっしゃいましたら、教えてください。よろしくお願いします。

  • Accessで写真付きの社員カードを作成したいのですが・・・

     Accessのフォームで、社員の顔写真付き社員カードを作成したいのですが、うまくいきません。  ファームの元になるテーブルに、OLEオブジェクト型のフィールド(フィールド名:写真)を作成した後、単票形式フォームを作成して、「写真」フィールドを選択後、「挿入」メニュー→「オブジェクト」から画像を挿入したのですが、最初のレコードに挿入した画像が、すべてのレコードに反映され、また表示も、元になるJPEGファイルの、アイコンのままになってしまいます。  また、画像を、ペイントで開き、コピー&ペーストで「写真」フィールドに貼り付けましたが、画像が社員の顔で表示されるも、やはり、一つの写真が、全てのレコードに反映されてしまいます。手元にある参考書などには、操作方法が載っていなく、結構いろいろ調べましたが、やはり、わかりません。  ご存知の方、どうぞ、教えてください<m(__)m>

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

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

  • access 写真の挿入

    誰か、教えてください、初心者です。 仕様環境 WinXP access2002 今、他のQ&Aやサイトをみながら、アクセスで写真の取り込みを やっているのですが、一つのレコードに一枚または数枚入れようとしています。 それでテーブルにOLEオブジェクト型のフィールドを作り、 「オブジェクトの挿入」で写真(jpg形式)をフィールドに反映し、 そこからフォームやレポートに反映することはできました。 (ようは成功した、ということです) そこで疑問が出てきたんですが、 この画像はアクセス内に保存されるのでしょうか? アクセスが重くなるのを嫌っているので、 なるべく軽くしたいと思っています。 理想は、写真がアクセス内に表示されてる時だけ表れ、 閉じたら外のファイルに戻る(アクセス内には残らない(ただしレコード名は残るため 次回フォームを開いた時には写真も表示される))みたいなことが理想です。 つまり写真は外部のファイルに保存され、 必要な時だけ、アクセスで使用するみたいな感じがベストです。 誰か教えてください!

  • Access のフォームで新しい行を挿入する方法

    アクセスの表形式でフォームを作成した時、データの先頭を右クリックすると ボックスが表示され、切り取り、コピー、貼り付け と表示されますが、ここに 挿入 がありません。  そこで、ここでダブルクリックをする事により、行挿入を行おうと思いました。 実際やってみるとテーブルの中には新しいレコードが挿入されているのですが、フォームを再表示(Repaintメゾッドを使用)しても、作成されたレコードが表示されません。 この時、レコード件数も増えているのに、以前のままの表示です。追加した後の枝No.は変更されて表示されています。  レコードには、キー項目と枝No.があります。  最初、レコード件数は2件とします。 1件目と2件目の間に新しいレコードを挿入したいので、2件目をダブルクリックして、新しく枝No.「2」のレコードを作成し、元の枝No.「2」のレコードは「3」に変更している事はテーブルを開けてみて確認しています。  この時、フォームでも枝No.は Repaint 実行後、変更されて表示されています。  どのようにすれば、新しいレコードが表示する事が出来るでしょうか。 実際には、この表形式はサブフォームにしており、メインフォームから、この挿入イベントを実行したいのです。 メインフォームでイベントを実行後、新たにサブフォームだけ開けてみると、ちゃんと新しいレコードが表示され、レコード件数も3件になっています。  よろしくお願いいたします。

  • アクセス2007

    アクセス2007 アクセス2007で質問です。検索フォームで日付けを打ち込むとその日付けのレコードが表形式で複数表示されるというものを作ったのですが、検索結果が複数ではなく先頭に表示されている1レコードだけを表示させるようにすればどの様にすればいいですか?もし方法がなければ単票形式で1レコードだけ表示させようと思うのですが、できれば表形式で表示させたいです。

  • Access2000のレコードの移動について

    Access2000を使用しています。 データが50件ほど有り、単票形式でフォームを作成しています。 そこで、その単票形式のフォームに非連結のテキストボックスを入れて、そのテキストボックスに「3」などの数字を入れると、3件目のフォームにジャンプが出来るようなものを作りたいのですが・・・よろしくお願い致します。 (VBはほとんどわかりません)

  • Access OLEオブジェクトのパッケージ表示について

    同時期に購入したPCが2台あります。 そのPCにてAccessで同じ操作をしているのですが、 テーブルでOLEオブジェクト型にして写真を挿入しているのですが、 同一写真(ビットマップ)を挿入しているにもかかわらず、 1台はビットマップイメージ、1台はパッケージ、との認識。 どこか1台途中で設定し間違えたのでしょうか。 ビットマップイメージに統一したいのですが。 方法をおしえてください。

専門家に質問してみよう