- ベストアンサー
AccessのOLEオブジェクト型について
ACCESS超初心者です。フォーム(単票形式)にデジカメで取った写真を取り込んで1レコードにつき1枚の写真を表示したいのですが。 マニュアルなどに載っているとおり、挿入-オブジェクトでファイルから取り込んでいますが、件数が多い場合1件ずつすると非常に手間がかかります。 何かよい方法はないでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
まず、写真は bmpファイルでないとうまくいきません。 手順として、 1.テーブルに「ファイル名」等の名前でフィールドを追加し、データ型をテキストにします。 2.フォームには、「ツールボックス」にある、「イメージ」を貼り付けます。 3.フォームの Form_Currentで「ファイル名」にデータが入っている場合に、貼り付けた「イメージ」の Pictureプロパティに「ファイル名」をフルパスで指定してやります。 なのですが、(3)で、コードを書かなくてはいけません。コード(VBA)がわからなければ、今まで通り「オブジェクトの挿入」をするしかありません。 ここでコードを書いてしまっていてはためにならないと思いますので、ACCESSのヘルプを見ながら勉強してください。それでわからないことが出れば、また質問してください。
その他の回答 (1)
- KojiS
- ベストアンサー率46% (145/312)
カテゴリーはデータベースの方が良いと思います。 オブジェクトを使わない方法ではだめでしょうか? よくあるやり方として、レコードにはファイル名を保存しておき、フォームにイメージコントロールを貼り付けます。レコードを移動するたびにイメージコントロールのPictureプロパティを変更すれば表示されるようになります。こうすれば、データベース自体に写真データが埋め込まれることがないのでデータベースファイルのサイズが増えることもありません。 ただし、この場合、写真は bmp等の Windowsが標準で使用できる形式にしないといけませんが。それ以外の形式を表示したい場合は、別途コントロールを買うか探さないといけません。 もしくは、リンクして表示するかです。 どちらにしろ、コードで書かないといけませんが。 挿入でやるより管理もしやすいと思います。
補足
ありがとうございます。せっかくなんですが初心者なので、レコードのファイル名の保存,イメージコントロールの貼り付け,などがわかりません。それも全部コードで書き込むということですよね。
お礼
重ね重ね、親切なアドバイス、ありがとうございます。 なんとか勉強してみます。