概要
| この記事の結論 Accessのフォームで写真を保存するには、ACCDBのテーブルに添付ファイル型のフィールドを作り、そのフィールドに連結した添付ファイルコントロールをフォームへ配置します。フォームビューで対象レコードを選び、添付ファイル画面から画像を追加します。画像を飾りとして置く操作とは保存先が異なります。追加後はレコードを保存し、開き直して別のレコードと混ざっていないかまで確認しましょう。 添付ファイル型とは、Accessの各レコードに画像などのファイル本体を関連付けて保存するデータ型です。 |
この記事でわかること
- 写真を保存する仕組みと方式の選び方
- 練習用テーブルと写真を準備する
- フォームに添付欄を作り写真を登録する
- 複数写真の切替と差し替えを行う
- 保存できない 表示されない原因を調べる
この記事の主な内容
- 写真を保存する仕組みと方式の選び方
- 練習用テーブルと写真を準備する
- フォームに添付欄を作り写真を登録する
- 複数写真の切替と差し替えを行う
- 保存できない 表示されない原因を調べる
- 容量とバックアップを含めて運用する
- よくある質問
想定読了時間:約12分~15分
写真を保存する仕組みと方式の選び方
写真をレコードごとに保存する場合は、添付ファイル型と、それに連結したフォームの添付ファイルコントロールを使います。コントロールとは、フォーム上の入力欄やボタンなどの部品です。写真を挿入するだけの画像コントロールとは役割が異なるため、最初に保存先を決めましょう。[1]
例えば設備台帳なら、設備IDが101の行に付けた写真を、設備IDが102の行へ移動したときに表示しないことが必要です。「写真が画面に出た」だけでは完成ではありません。どの設備の写真として保存されたかまで確認すると、後から写真を取り違える問題を防げます。
添付型と外部ファイル方式の違い
添付型は、写真本体をAccessのデータベース内へ保持します。一方、外部ファイル方式は共有フォルダなどに写真を置き、Accessにはファイルの場所を保存する設計です。外部方式ではファイルの移動、利用者の権限、バックアップの対応関係を別途管理します。

| 方式 | Accessへ保存するもの | 向いている使い方 | 注意点 |
|---|---|---|---|
| 添付ファイル型 | 画像ファイル本体 | 比較的小規模な写真付き台帳 | DB容量が増える |
| 外部ファイル方式 | パスや管理用ID | 写真が継続的に増える仕組み | リンク切れと権限を管理 |
| フォームの装飾画像 | 画面共通の画像設定 | ロゴや説明用イラスト | レコードごとの写真保存にはならない |
本記事では、初心者がVBAなしで確認しやすい添付型を扱います。どちらが常に優れているということではありません。写真数、1枚の容量、利用人数、復旧方法を踏まえて選ぶことが実務では大切です。
練習用テーブルと写真を準備する
最初は本番とは別のACCDBを使い、架空の設備を2件と小さいJPEG画像を用意します。添付型はACCDBで利用する機能です。MDBで見つからない場合に、拡張子だけを手作業で変えても形式は変換されません。[1]
テーブルをデザインビューで設定する
新規テーブルをデザインビューで開き、次の項目を作成して「T_設備」として保存します。主キーは1行を一意に識別する項目です。写真を識別番号の代わりに使わず、IDと名称を画面で確認できる設計にします。[2]
| フィールド名 | データ型 | 設定の目的 |
|---|---|---|
| 設備ID | オートナンバー型 | 主キーにして設備を識別 |
| 設備名 | 短いテキスト型 | 写真の対象を表示 |
| 設置場所 | 短いテキスト型 | 取り違え防止の補助情報 |
| 設備写真 | 添付ファイル型 | 写真本体を保存 |
デザインビューの空いている行へ「設備写真」と入力し、隣のデータ型から[添付ファイル]を選びます。既存の短いテキスト型の列を無理に転用せず、新しい列として用意すると、元データを保ったまま確認できます。添付型へ設定した後は、別の型へ直接変更できない点にも注意します。[1][2]
試す画像は小さく 内容の異なる2枚にする
練習では、例えば100~300KB程度のJPEGを2枚用意すると扱いやすくなります。この容量は操作確認のための例であり、Accessの必須条件ではありません。実際の登録基準は、必要な拡大率や印刷品質に応じて決めてください。
1枚目と2枚目は見分けられる画像にします。同じ写真を2件へ付けると、レコードとの連結が誤っていても見落としやすくなります。ファイル名も「設備A_正面.jpg」のように対象が分かる名前にしておきましょう。

フォームに添付欄を作り写真を登録する
フォーム全体の[レコードソース]をT_設備にし、添付欄を[設備写真]へ連結します。レコードソースは画面全体のデータ元、コントロールソースは個々の部品に対応するフィールドや式です。この2段階を分けて確認すると、写真の保存先を追いやすくなります。[1]
既存のフィールドを追加して連結する
1. ナビゲーションウィンドウでT_設備を選び、[作成]→[フォーム]から基本画面を作ります。
2. 「F_設備写真」として保存し、デザインビューで開きます。
3. フォーム全体を選択してF4を押し、[データ]の[レコードソース]を確認します。
4. [既存のフィールドを追加]を開き、「設備写真」フィールド全体をフォームへドラッグします。
5. 添付コントロールを選択し、[コントロールソース]が設備写真になっているか確認します。
自動作成で既に添付欄が配置されている場合は、同じ欄を重複して置く必要はありません。また、フィールド一覧に展開できる添付項目がある場合は、FileNameなどの子項目だけではなく、親の添付フィールドを配置します。[1]

対象レコードを選んでから写真を追加する
フォームビューへ切り替え、設備名と設置場所を確認します。添付欄をクリックすると表示されるミニツールバーから、クリップのアイコンなどの[添付ファイルの表示]操作で管理画面を開きます。表示名称やリボンの位置はAccessのバージョンによって異なる場合があります。
| 手順 | 操作 | 確認すること |
|---|---|---|
| 1 | 設備を選ぶ | 設備IDと設備名が正しい |
| 2 | 添付ファイル画面を開く | 対象レコードの一覧である |
| 3 | [追加]からJPEGを選ぶ | ファイル名が一覧に追加された |
| 4 | [OK]で戻りレコードを保存 | 写真が表示され保存エラーがない |
| 5 | 別レコードへ移動し元へ戻る | 写真が正しい設備に残る |
添付ファイル画面を閉じた後は、必要項目の入力も完了させます。レコード移動時に値要求や入力規則のエラーが出た場合は、保存が完了していません。フォーム設計の保存と、利用者が入力したレコードの保存は別の操作なので、Ctrl+Sだけを根拠に判断しないでください。
最後にフォームを閉じて開き直し、T_設備側でも添付の有無を確認します。2件目には別の写真を追加し、両方を切り替えて確かめます。ここまでできれば、単に画像を置いただけの画面と、レコードへ保存できる画面を区別できます。

複数写真の切替と差し替えを行う
添付型は1レコードに複数のファイルを保持できます。設備の正面と背面のように、同じ対象の写真をまとめたい場合に使えます。フォームの添付コントロールでは、添付が複数ある場合に前後の矢印で表示を切り替えられます。[1]
並び順や代表写真を業務上の決まりにしない
複数添付ができることと、任意の表示順や代表写真を安定して管理できることは別です。「必ず正面写真を先頭」「撮影日順に全画像を印刷」などの要件があるなら、写真ID、設備ID、表示順、撮影日などを持つ写真管理テーブルも検討します。
このような子テーブルは、1設備に複数の写真を関連付けて管理する構成です。初めは添付型で足りても、写真ごとに説明や承認状態が必要になると、情報を個別の行へ持たせる方が管理しやすくなります。
差し替えるときは新しい写真を確認してから削除する
古い写真を先に削除すると、新しい画像を選び間違えたときに戻す材料が失われます。差し替えは、新しい写真の追加、表示確認、古い写真の選択と削除、レコード保存、再表示の順に行うと確認しやすくなります。
削除前に残しておく必要がある写真は、[名前を付けて保存]などで外へ取り出します。添付一覧の[削除]は、そのレコードに保持している添付を消す操作です。最初に選択したPC内の原本ファイルを同時に削除する操作とは分けて考えます。[1]

写真付き管理フォームの改善を検討している方へ
まずは記事の手順をコピー上で試し、設定と結果を確認してください。複数の画面や利用者に影響する、保存や集計の仕組みから見直したい場合は、対象ファイルの形式・症状・期待する動作を整理してご相談ください。
保存できない 表示されない原因を調べる
まず、テーブルには添付があるのにフォームだけ出ないのか、テーブルにも保存されていないのかを分けます。前者は表示や連結、後者は更新権限や保存条件を調べると、確認範囲を狭められます。画像の表示だけを見て原因を決めつけないことが大切です。
| 症状 | 確認する場所 | 対処の方向 |
|---|---|---|
| 添付型が選べない | ファイル形式 | ACCDBか確認。変換はコピーで検討 |
| 全レコードが同じ写真 | 配置した部品と連結先 | 装飾画像になっていないか確認 |
| 追加や削除ができない | フォームの更新許可、コントロールのロック | 読取専用の設計か確認 |
| レコードが保存できない | 必須項目、入力規則、保存先権限 | エラーの原因を解消して再保存 |
| アイコンだけが出る | 添付の形式 | 小さいJPEG・PNGで比較 |
| 途中から登録に失敗 | DB容量、画像容量、ディスク空き | 容量と保存先の状態を確認 |
クエリを使っている場合は更新可能か確認する
元のフォームが集計クエリなどを使っていると、画面で見られても更新できない場合があります。切り分けでは、同じテーブルを直接使う単純なフォームをコピー上で作り、追加できるか確認します。そこで動くなら、画像形式だけでなく元クエリやフォームの設定を調べます。
また、フォームの[編集の許可][追加の許可]、添付コントロールの[編集ロック][使用可能]などを確認します。これらは操作性の設定であり、ファイル共有やデータベースのアクセス権そのものを付与する機能ではありません。
写真が切れる 歪む場合は表示方法を調整する
添付コントロールの[ピクチャサイズ]など、PictureSizeModeに相当する設定では、拡大・縮小、クリップ、ストレッチなどの違いを確認します。縦横比を保って全体を収めたいときは、ズームに相当する設定を候補にします。余白が出ることと画像欠けは区別しましょう。
HEICなどスマートフォン由来の形式で表示できない場合は、必要に応じてJPEGやPNGのコピーを作って試します。拡張子だけの変更は画像変換ではありません。また、画面で見えないことと添付ファイル自体が壊れていることは同じではないため、外へ保存して元のアプリで開けるかも確認します。

容量とバックアップを含めて運用する
AccessのDBファイルは原則2GBが上限であり、添付1ファイルは256MB以下です。添付だけで2GBを自由に使えるという意味ではなく、テーブルやその他のオブジェクトも同じDB容量に含まれます。容量上限ぎりぎりで使う計画は避けましょう。[1]
枚数ではなく容量の増え方を記録する
例えば1枚500KBの写真を1,000枚保持すれば、写真だけで概算500MBになります。DB内の管理領域などは別に必要です。この計算は保存方式を考えるための目安であり、実際のファイルサイズを保証するものではありません。
月に増える画像の枚数と平均容量を把握し、定期的にDBの実サイズを記録します。原寸写真が不要な業務なら、登録前に縮小したコピーを作るルールが有効です。細部の証跡として原本を残す必要がある場合は、原本の保管場所と参照方法を別途決めてください。
写真を含めて復元できるか確認する
添付型の写真はDB本体のバックアップへ含まれます。外部ファイル方式なら、DBと写真フォルダの両方を対応付けて保存します。バックアップがあるだけでなく、別の検証場所へ戻してレコードと写真の組み合わせが再現できるか確かめることが重要です。
複数人で使う場合は、画面側とデータ側を分ける構成を検討します。OneDriveなどの同期フォルダに同じAccessファイルを置き、全員で直接同時編集する運用を安易に選ばないでください。写真の増加が大きい場合は、外部ストレージとDBの役割分担も見直し候補です。

まとめ
写真をフォームへ添付するときは、保存先の添付フィールド、画面上の連結、対象レコードの3点を確認します。登録後は別レコードへの移動と開き直しで確かめ、複数写真の扱い、容量の増え方、復元方法まで決めておくと、写真付き台帳を継続して運用しやすくなります。
写真付き管理フォームの改善を検討している方へ
まずは記事の手順をコピー上で試し、設定と結果を確認してください。複数の画面や利用者に影響する、保存や集計の仕組みから見直したい場合は、対象ファイルの形式・症状・期待する動作を整理してご相談ください。
よくある質問
MDBでは、ACCDBの添付ファイル型をそのまま使えません。既存のMDBで写真を扱うなら、外部ファイルの場所を保存する方式などを検討します。ACCDBへ変換する場合も、まずコピーを作り、旧形式に依存する機能や利用者のAccess環境を確認してください。拡張子を手で書き換えるだけでは変換になりません。写真だけを追加したいのか、既存システム全体を更新するのかを分けると、必要な作業範囲を整理できます。
フォームのデザインに共通の画像を配置した可能性があります。ロゴなどの装飾画像は、レコードを切り替えても同じものを表示します。対象ごとに写真を変えたい場合は、テーブルに添付ファイル型を作り、フォームの添付コントロールをそのフィールドへ連結します。レコードソースとコントロールソースの両方を確認し、異なる写真を登録した2件で切り替えてください。写真が出ることと保存先が正しいことは、別々に確かめます。
はい。添付ファイル型には、同じレコードへ複数の写真を追加できます。添付欄の管理画面から追加し、フォームでは前後の矢印で表示を切り替えます。ただし、写真ごとの説明、撮影日時、表示順、承認状況まで管理したい場合は、写真用の子テーブルを設ける方が適することがあります。複数添付が可能という理由だけで、業務の管理項目まで1つの添付欄へ集約しないようにしましょう。代表写真の決め方も別に整理します。
添付ファイル型へ正常に保存した写真は、通常、DB内に取り込まれたコピーです。そのため、追加元のPCにあるファイルを移動・削除しても、保存済みの添付が連動して消える仕組みではありません。一方、外部ファイルのパスを保存する方式では、元ファイルを移動すると表示できなくなることがあります。まず自分の画面がどちらの方式か確認してください。原本を削除する前にDBを開き直し、保存状態とバックアップを確認することをおすすめします。
写真の形式だけでなく、レコード全体を保存できているか確認します。必須項目の未入力や入力規則の違反があると、添付画面を閉じても保存が完了しない場合があります。次に、元クエリが更新可能か、フォームの編集許可やコントロールのロック、保存先フォルダの権限を確認します。小さいJPEGを使い、単純なテーブルとフォームのコピーで試すと原因を絞れます。エラー番号と表示文も残し、画像の不具合と決めつけないことが大切です。
枚数だけでは判断できません。1枚の容量と月間の増加量により、DBの上限へ達する速さが変わります。AccessのDB全体は原則2GBなので、原寸写真を無制限に追加する運用は避けます。登録用画像の軽量化、実ファイルサイズの定期確認、復元テストを行ってください。写真が増え続ける場合は、外部ストレージに本体を置き、Access側で管理用IDや参照先を持つ構成も候補です。その際は権限とバックアップも一緒に設計します。
関連記事
Accessフォームにテキストボックスを配置する方法と連結の違い
参考情報
[1] Microsoft 添付ファイルと画像の管理
https://support.microsoft.com/en-us/access/attach-files-and-graphics-to-the-records-in-your-database
[2] Microsoft テンプレートから作成したDBの変更
https://support.microsoft.com/en-us/access/modify-your-new-database-created-from-a-template
[3] Microsoft データ型とフィールドプロパティ
https://support.microsoft.com/en-us/access/introduction-to-data-types-and-field-properties
[4] Microsoft 添付画像のサイズ調整
https://learn.microsoft.com/ja-jp/office/vba/api/access.attachment.picturesizemode