No.1ベストアンサー
- 回答日時:
よく使う手法ですので覚えておいて損はないと思います。
以下、私がローカルで作成したサンプルDBの構造に沿って説明します。
「tbl01Content」という名前のテーブルを作成します。
その中にとりあえずフィールドを1つだけ「m01Image」という名前でテキスト型で作成します。
# とりあえずここでは画像ファイル名のフィールドだけですが、
# の他の情報を格納するフィールドもこのテーブルに作っちゃってください。
# 実際問題として、メインレコード1件に対して画像が1点ならば上記の構造で構いませんが、
# メインレコード1件に対して画像が数点ある場合は
# 画像ファイル名は別テーブルに格納してメインテーブルとリレーションすることになると思います。
このフィールドには画像ファイルのフルパスを入れておいてください。
フォームを1つ作ります。名前は適当に。
フォームのレコードソースを「tbl01Content」テーブルに設定。
フォーム上にイメージコントロールを貼り付けます。
# メージファイルを選択するダイアログが出るので、とりあえず適当な画像ファイルを選択してください。
# その後すぐに、プロパティの「ピクチャ」を空っぽにしてください。
イメージコントロールの名前を「imgPic」とします。
テキストボックスを1つ配置します。
テキストボックスのコントロールソースを「m01Image」フィールドにします。
# このテキストボックスにはファイル名が表示されるので、
# 邪魔なら「可視」プロパティを「いいえ」にしても結構です。
テキストボックスの名前を「txtImagePath」とします。
フォームの「レコード移動時」イベントを「イベントプロシージャ」にしてVBEditorを起動。
「Private Sub Form_Current()」というプロシージャが作成されていますので、以下のようにコードを記述してください。
Private Sub Form_Current()
If Not IsNull(Me.txtImagePath.Value) Then
Me.imgPic.Picture = Me.txtImgPath.Value
Else
Me.imgPic.Picture = ""
End If
End Sub
これで一応動くはずです。
以下、改善点。
問題1)
フィールドに画像のフルパスを入れるのは面倒くさいから、画像のファイル名だけを入れるようにしたい。
実際の画像ファイルも「固定の」フォルダ内に全部入れておくようにしたい。
改善1)
「固定フォルダ」のパスがどこなのかを、DB内のどこかに保存しておく。
設定情報を格納するためのテーブルを作成するのもよし。
VBAのコード内で定数として持っておくのもよし。
問題2)
新規レコードをフォームから登録させたい。
その際、登録する画像ファイルを「ユーザーにやさしいインターフェイスで」登録させたい。
改善2-1)
「ファイルを開くダイアログ」はAPI関数を使うことになります。
別の場所にある画像をダイアログから選択させて、レコードを登録するときにVBAでその画像ファイルを「固定のフォルダ」にコピーする必要があります。
改善2-2)
画像ファイルはあらかじめユーザーがエクスプローラなどから手動操作で「固定フォルダ」に保存してもらう。
新規レコード登録時にファイル選択ダイアログを表示し、固定フォルダの中から該当する画像ファイルを選択してファイル名をテーブルに記録させる。
てなところでしょうか。
temtecomaiさん、ここまで丁寧に教えていただいて感激です!!どうもありがとう。
これから仕事を再開します。すごく難しそうですが挑戦してみます。後ほどまたご報告します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- Excel(エクセル) EXCELマクロでandroidタブレットから取りんだJPEGファイルをうまくセルに貼り付けられない 2 2022/07/31 15:03
- デスクトップパソコン スマホからメール添付でパソコンへ送った画像が開かない 4 2023/06/06 17:19
- 一眼レフカメラ 「Imaging Edge」を手動起動せず、ARWファイルを最高画質JPEGへ変換する方法は? 2 2022/08/05 11:38
- ドライブ・ストレージ PCのパーフォーマンスが極端に落ちた。 8 2023/01/28 15:22
- YouTube ユーチューブへの動画投稿にサムネイルを付ける方法は? 1 2022/07/21 23:45
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Ameba(アメーバブログ) アメブロは、HTMLのタグの入力を許さないブログ・サイトですか? 1 2023/06/18 18:48
- ホームページ作成・プログラミング アメーバ・ブログは"HTMLタグ"を許可してないのですか? 2 2023/06/17 21:08
- HTML・CSS CSSでサイトの背景に画像を組み込みたいのですが反映されません 2 2022/11/22 16:21
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
Accessの画像挿入のVBAコード
Visual Basic(VBA)
-
アクセス2000で画像データの一括取り込みはできますか?
Access(アクセス)
-
Accessでの画像ファイルの取り込み
Access(アクセス)
-
-
4
アクセスでの大量の画像管理って結局・・・
その他(データベース)
-
5
アクセス:名簿データベースにjpeg写真を貼り付けたい
Access(アクセス)
-
6
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
7
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
8
Accessのフォームで商品の画像を表示したい
Excel(エクセル)
-
9
Accessを開きなおすとテキストボックスの値がエラー#Name?になる
その他(データベース)
-
10
角丸四角形を描きたい
Excel(エクセル)
-
11
年月日を持つテーブルから年月を指定して抽出したいのですが
その他(データベース)
-
12
アクセスでテキストボックスの値が空白だったら
Access(アクセス)
-
13
Access_Formのデザインビュー画面を拡大表示
Access(アクセス)
-
14
accessで重複を防ぎたい
Access(アクセス)
-
15
Accessで、フォームからフォームへ値を引き継ぐやり方
Access(アクセス)
-
16
Access VBAでタブコントロールで選択するタブをしていするには。
Access(アクセス)
-
17
Access 別フォームへの再クエリ(更新)がしたい。
その他(データベース)
-
18
「フォームを作成できませんでした」
Access(アクセス)
-
19
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
20
ACCESSで複数の写真ファイルを同時表示する方法
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessでテーブルの値をテキス...
-
INSERT INTO ステートメントに...
-
ExcelのデータをコピーでACCESS...
-
Accessのフィールド数が255しか...
-
SQLServer2005のSQL文での別名...
-
ACCESSでの改行コード
-
アクセス メモ型 255文字...
-
アクセス エラーを数値「0」に...
-
【Access】フォームで自動計算...
-
ACCESSでテーブルのチェックを...
-
ACCESSでオートナンバーを任意...
-
ACCESS 入力文字数制限
-
Access 昇順・降順で並び替え...
-
ACCESSで400以上のフィールドが...
-
フィールド数の多すぎる・フィ...
-
Access の非連結テキストボック...
-
フォームのデータシートビュー...
-
Access⇒エクセルへのエク...
-
アクセスのテーブルデータをCSV...
-
主キーはオートナンバー型のID...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessでテーブルの値をテキス...
-
Accessのフィールド数が255しか...
-
ACCESSでの改行コード
-
INSERT INTO ステートメントに...
-
ACCESSで400以上のフィールドが...
-
Access 昇順・降順で並び替え...
-
SQLServer2005のSQL文での別名...
-
【Access】フォームで自動計算...
-
ACCESSで和暦を西暦に・・・
-
accessで重複を防ぎたい
-
アクセス エラーを数値「0」に...
-
accessのレポートで元になるテ...
-
ExcelのデータをコピーでACCESS...
-
主キーはオートナンバー型のID...
-
アクセス VBAで列の入れ替...
-
Accessで、固定アルファベット+...
-
Access:リンクテーブルマネー...
-
ACCESS検索★ある文字を複数のフ...
-
アクセスのテーブルデータをCSV...
-
ACCESSでテーブルのチェックを...
おすすめ情報