• ベストアンサー

access 写真の挿入

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

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

  • ベストアンサー
noname#182251
noname#182251
回答No.4

>strGAZOU = strPath & Me.DSC00110 Me.DSC00110は無理です。 「コンパイルエラー:メソッドまたはデータナンバが見つかりません」のメッセージ通りなのですが、要するにフォーム(Me)上に「DSC00110」というオブジェクトがないと指摘しています。 QNo.1378032の回答では 「Me.画像名」となっています。 これはフォーム上に「画像名」と名付けられたテキストボックスを置き、これに画像ファイル名(23tomo-uの場合であれば「DSC00110.jpg」など。拡張子も付ける)が表示されるようにレコードと関連づけ、その上でフォームを実行します。レコードを移動するごとにファイル名が替わり、画像もそれが表示されます。 QNo.4092746で、『「!」とか「ME.」とか用語が』と書かれているので無理もないかもしれませんが、この場合「Meの実体はフォーム」と判れば全体が見通せるでしょう。もちろんMeの実体はケースバイケースです。

23tomo-u
質問者

お礼

fuuten_no_neko様 回答ありがとうございます! 「DSC00110」はfuuten_no_neko様の助言で何とか解決できました、 ありがとうございます。 ただ、またエラーが発生しました。↓ Me.Image4.Picture ここがおかしいようです。 しかし、現在のスキルから考えるとちょっと難しい問題ですし、 また現在のレベルでfuuten_no_neko様や他の方にご指導を受けていたら何度も聞くことになり、 ご迷惑をかけそうなので、ここで締め切らせて頂こうかとかとおもいます。 ありがとうございました!

その他の回答 (3)

noname#182251
noname#182251
回答No.3

過去の質問でこれが参考になるでしょう。 http://oshiete1.goo.ne.jp/qa1378032.html 要するに、設計時には適当な画像を貼り付けて、レコード移動時(起動したときも移動している)に、ファイル名をそのレコードに記述されているものに替え、表示しています。 画像データは個別に保存。つまりカメラなどから取り込んだままでも良いわけです。

23tomo-u
質問者

補足

fuuten_no_neko様 回答ありがとうございます! 早速やってみたのですが、中々うまくいきません。 下記は画像をデスクトップ上にもってきてやったものです。 画像名は「DSC00110」です。 Private Sub Form_Current() Dim strGAZOU As String Dim strPath As String strPath = "C:\Documents and Settings\23tomo-u\デスクトップ\" strGAZOU = strPath & Me.DSC00110 If Not IsNull(Me.DSC00110) Then Me.Image4.Picture = strGAZOU End If End Sub コンパイルエラー:メソッドまたはデータナンバが見つかりません と出てきます。 エラーはMe.DSC110のところで発生しているようです。 (色が反転します) ちなみにテーブルに「写真」というテキスト型のフィールド を作ったのですが、混乱を回避するため、その中は空にしてあります。 もし何かご指摘がありましたら お手数ですがよろしくお願いします!

  • hotosys
  • ベストアンサー率67% (97/143)
回答No.2

画像だけ別mdbに保存して、テーブルのリンクで本体mdbから読み書きするという事はできる。 画像のに限らずデータが多くなると起動に時間がかかるし稼働中の保守を考えて、データ(テーブル)とそれ以外を分離するという方法はよく使う。

23tomo-u
質問者

お礼

hotosys 様 回答ありがとうございます! リンクするという方法もあったんですね! 参考になりました、ありがとうございます。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

> この画像はアクセス内に保存されるのでしょうか? はい。 MDB内に画像を持たずに、ということであれば、「ハイパーリンク」の利用が有効でしょうか。 ただし、画像ファイルのフォルダ位置を変更したら、役に立たなくなりますが。 ヘルプで「ハイパーリンク」を参照してみてください。

23tomo-u
質問者

お礼

bin-chan 様 回答ありがとうございます! ハイバーリンクもありますね。 今後使うときがあるかも知れません。 参考になりました、ありがとうございます。

関連するQ&A

  • ACCESSフォームに写真を貼りたい

    アクセスのフォームのデータ1つ1つに写真を貼りたいのですが、 テーブルでOLEオブジェクトをつくり、フォームにそのボックスを設け、そこにオブジェクトの挿入を実行してみました。が、写真の下にファイル名が表示してしまいます。これを写真だけを表示させるにはどうすればよいでしょうか?

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

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

  • Accessで顔写真表示

    Access2002です。以前の同じような質問を検索してみましたが初心者なのでいまいち分かりません。 やろうとしていることは現に出来ている名簿に顔写真を新たに加えたいのです。 質問は 1 テーブルに新たに作るフイールド名をPHOTOと し、データー型はOLEオブジェクト型で良いのでしょうか。 2 フォームに作る写真を表示する枠はテキストボックス、非連結オブジェクトフレーム、連結オブジェクトフレームのどれでしょうか。 3 たいした人数ではないので多少重くなっても写真は埋め込み型にしたいです。(この方が初心者にはい  いだろうと思いますが) 4 写真はスキャナーで撮りjpgにしてファイルにし取りこんだ後は削除したいと思っています。 5 訳があって新しくこのDBを作るのではなく現にあ  るDBに追加したいのが味噌なのです。 以上よろしくお願いいたします。

  • アクセス:名簿データベースにjpeg写真を貼り付けたい

    お世話になります。 アクセス初心者です。教えてください。 ◆(やりたいこと) アクセスのテーブルに名簿データベースがあります。 その中に「写真」フィールドにjpegの写真を貼り付けて印刷をしたいのですが、やり方がわかりません。 ◆(やってみたこと) (1)「写真」フィールドのデータ型を「OLEオブジェクト型」にして、それぞれの写真欄に「オブジェクトの挿入」→「ファイルから」でjpeg写真を挿入 (2) オートレポートで単票型を作成してみたが、写真が表示されない。 業務で急いでいます。お助けをください。ご指導お願いいたします。

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

  • MSアクセスのjpgファイル表示

    Windows XPにMSアクセス97をインストールしました。 OLEオブジェクト型でjpgファイルをフォームで挿入したのですが フォームに文字が出るだけで写真が映りません。 ヘルプを見ると、フィルターが必要とのことでoffice97の CDからインストールしたのですが変化ありません。 どうしたらいいのでしょうか。

  • 写真付きのデータベース構築について(Access97)

    Access97を利用しています。 アクセスにはあまり詳しくないのですが、写真付きの商品台帳を作ろうとしています。 写真は1枚60kb程度で商品も200点ほどなのですが、 入力用フォームでOLEオブジェクト型の所にコピー&ペーストで貼りつけて 入るのですが、データーベース自体のファイルが100MB以上の大容量になってしまいます。  1枚60KB×200枚で12MB前後のファイルサイズを想像していたので驚いています。 写真を簡単に貼りつけ出来て、ファイルがあまり大きくならないようなやり方があるのでしょうか? 現在のやり方はテーブルで ・商品マスタ ID 主キー設定 商品番号  テキスト形式 商品名   テキスト形式 写真    OLEオブジェクト型 を作り、フォームでウィザードの単表形式で作ったものを呼び出して、 写真をコピペしています。

  • アクセス:名簿データベースにjpeg写真を貼り付けたい-(2)-

    No.2219016で質問したものです。(下記に再掲) ビットマップにして試したら可能なようです。 しかし、jpegならだめということなのでしょうか? -記- 質問:アクセス:名簿データベースにjpeg写真を貼り付けたい 質問者:yastaro お世話になります。 アクセス初心者です。教えてください。 ◆(やりたいこと) アクセスのテーブルに名簿データベースがあります。 その中に「写真」フィールドにjpegの写真を貼り付けて印刷をしたいのですが、やり方がわかりません。 ◆(やってみたこと) (1)「写真」フィールドのデータ型を「OLEオブジェクト型」にして、それぞれの写真欄に「オブジェクトの挿入」→「ファイルから」でjpeg写真を挿入 (2) オートレポートで単票型を作成してみたが、写真が表示されない。 業務で急いでいます。お助けをください。ご指導お願いいたします。

  • ExcelのシートをAccessで表示したい

    WindowsXPでAccess2002とExcel2002を使用しています。 AccessのフォームとレポートでExcelのシート内容を表示させたいと思いますが、OLEオブジェクトでそのまま挿入すると容量が大きくなりすぎます。そこで、過去の質問NO.605269のように、テーブルにExcelファイルのフルパスを格納するフィールドを1つ設け、そのパスをオブジェクトフレームコントロールのSourceDocプロパティに代入したのですが、うまくいきません。 連結オブジェクトフレームでは「OLEオブジェクトは空です」とメッセージが出てコントロールには何も表示されません。非連結オブジェクトフレームではどのレコードにも、最初にコントロールを設定したときに表示されるダイアログで指定したExcelファイルしか表示されません。 どうすればいいのか、アドバイスをお願いします。