概要
| この記事の結論 AccessのACCDBに商品写真などを登録するには、テーブルに添付ファイル型のフィールドを作り、フォームの添付ファイルコントロールを連結します。少量の画像をレコードとまとめて保管する用途に向きます。一方、枚数が増える場合は、画像を共有フォルダーへ置いてパスを管理する方式も比較しましょう。画像を小さく見せる設定と保存容量の削減は別なので、登録前のサイズ調整とバックアップ方法も決めます。 添付ファイル型とは、ACCDBのレコードに画像や文書などのファイルを保存できるデータ型です。 |
この記事でわかること
- テーブルに画像の保存項目を作成する
- フォームで画像を登録して表示を確認する
- 画像の差し替えと削除と複数枚を管理する
- 画像パス方式で外部ファイルを表示する
この記事の主な内容
- 画像を登録する前に保存方式を選ぶ
- テーブルに画像の保存項目を作成する
- フォームで画像を登録して表示を確認する
- 画像の差し替えと削除と複数枚を管理する
- 画像パス方式で外部ファイルを表示する
- 容量とバックアップと将来の移行に備える
- よくある質問
想定読了時間:約15分~20分
画像を登録する前に保存方式を選ぶ
商品や顧客ごとに写真を保存するなら、添付ファイル型が分かりやすい入口です。ただし、画像の枚数が増える運用では、Accessファイルの容量とバックアップ時間も増えます。最初に画像の用途、増加量、共有する人数、将来の移行先を確認しましょう。
添付と外部パスと固定画像の違い
| 方式 | 画像の置き場所 | 向く用途 | 注意点 |
|---|---|---|---|
| 添付ファイル型 | ACCDBのデータ内 | レコードと画像をまとめて管理 | DB全体の容量が増える |
| 画像パス方式 | 共有フォルダー等 | 多数の写真を外部管理 | 画像本体とパス・権限の管理が必要 |
| 固定画像 | フォームやレポートの設計 | 全件共通のロゴや見出し | レコードごとの写真ではない |
| OLEオブジェクト | 従来方式の埋め込み等 | 既存システムとの互換対応 | 容量と外部アプリ依存を確認 |
新しく少量の写真管理を作るなら、まず添付方式で要件を満たせるか確認します。ロゴを表示したいだけなら、各レコードへ同じ画像を添付する必要はありません。全件共通の装飾と、商品ごとの業務データを分けることで重複を減らせます。

画像が増える速さを把握する
「今は10枚」だけで決めず、1商品あたりの枚数、毎月増える商品数、保存期間を確認します。原寸写真を永久保存する用途と、縮小した商品サムネイルだけを表示する用途では必要容量が違います。どの品質をAccessで必要とするかを先に決めてください。
テーブルに画像の保存項目を作成する
添付ファイル型を利用できるのはACCDB形式です。MDBの項目に同じ型を追加することはできません。既存MDBを変換する場合は、画像機能だけで判断せず、他の機能や配布先との互換性も確認します。[1]
練習用テーブルの例
| フィールド | データ型 | 用途 |
|---|---|---|
| 商品ID | オートナンバー型・主キー | 商品を一意に識別 |
| 商品名 | 短いテキスト型 | 画面に表示する名前 |
| 商品画像 | 添付ファイル型 | 商品に関係する画像を保存 |
この構成は説明用のT_商品です。既存システムのデータ型をいきなり変更するのではなく、コピーで新しい項目を追加して確認します。添付ファイル型へ設定したフィールドは、その後に別の型へ簡単に変更する前提にしないでください。
フィールドを追加する手順
1. 対象テーブルを閉じ、バックアップがあることを確認します。
2. ナビゲーションウィンドウからデザインビューで開きます。
3. 新しい行のフィールド名に商品画像と入力します。
4. データ型に[添付ファイル]を選択します。
5. テーブルを保存し、データシートビューで添付欄があることを確認します。
6. テスト用の商品1件に、識別しやすい画像を登録して確認します。

添付した画像はデータベースの内部に保存されます。外部ファイルへのショートカットを作る操作とは異なります。一方、画像パス方式ではDBに保存されるのは場所の情報なので、この違いが後のバックアップ方法へ影響します。
フォームで画像を登録して表示を確認する
画像を商品に結び付けるには、フォームのレコードソースをT_商品などに設定し、添付ファイルコントロールを商品画像へ連結します。フォームに固定画像を貼り付けるだけでは、レコードごとの添付にはなりません。
添付コントロールを用意する
新規フォームなら、T_商品を選択してフォームを作成し、添付項目の表示を確認します。既存フォームならデザインビューでフィールドリストを表示し、商品画像を配置する方法があります。生成されたコントロールのコントロールソースが商品画像になっているか確認してください。
登録手順
1. フォームビューで対象の商品IDと商品名を確認します。
2. 添付欄から添付ファイルの管理画面を開きます。
3. [追加]を選び、登録する画像ファイルを指定します。
4. ファイル名を確認して[OK]で閉じます。
5. レコードを保存し、別の商品に移動してから戻ります。
6. 正しい商品の画像が表示されることを確認します。

既存の商品と新規の商品では、保存時に確認すべき項目が異なります。新規商品では商品名などの必須項目が未入力だとレコードを保存できない場合があります。画像が表示された瞬間を完了とせず、フォームを開き直して同じ商品IDに残っているかを確認します。
表示サイズと画像容量は別
画像を枠に収める設定は、見せ方を変えるものです。例えばイメージコントロールのズームは縦横比を保ち、ストレッチは枠に合わせて変形、クリップは収まらない部分を切り取る方式です。添付コントロールでも、使えるサイズ表示の設定を確認します。
商品写真が縦長と横長で混在するなら、まず比率を保って全体が見える設定を検討します。ただし、画面で小さく見えても保存済みの元画像が自動的に小さくなるわけではありません。容量を減らすには、登録前に画像の寸法や圧縮を調整します。

画像の差し替えと削除と複数枚を管理する
同じ商品に複数のファイルを添付できます。ただし、複数登録できることと、どの画像を主画像として使うかを管理できることは別です。正面、背面、詳細などの区分や撮影日が必要なら、その情報をどこに持たせるか決めましょう。
差し替える前に対象を確認する
画像を変更するときは商品IDを確認し、必要なら旧画像を外部へ保存してから削除・追加します。Access内の添付を削除することと、元の写真フォルダーからファイルを削除することは別の操作です。変更履歴が必要なら旧版を保持する場所や命名規則を決めます。
添付から外部へ保存した画像を編集しても、その編集が自動でDB内の添付へ戻るわけではありません。運用を簡単にするなら、外部で編集した完成画像を再添付する流れを定め、どちらが最新版か分からなくなる状態を避けます。
画像ごとの属性が必要なら子テーブルを使う
1商品に複数画像があり、それぞれに説明や順番を付けたいなら、画像を1件ずつ管理するT_商品画像を設ける案が考えられます。商品IDで商品と結び、画像IDで1枚を識別します。これは運用設計の提案であり、添付型の利用に必須の構造ではありません。
| 項目 | 役割 | 例 |
|---|---|---|
| 画像ID | 1枚を識別 | オートナンバー |
| 商品ID | どの商品に属するか | T_商品の主キーに対応 |
| 画像区分 | 写真の役割 | 正面・背面・寸法 |
| 表示順 | 並び順 | 1、2、3 |
| 撮影日 | 新旧の判断 | 実際の撮影日 |
| 主画像 | 代表として使うか | 商品ごとの主画像ルール |
| 画像本体またはパス | 表示する対象 | 添付または管理された保存先 |

主画像が複数になったり、1枚もなくなったりしたときの扱いも決めます。画像がない商品に共通の「画像なし」を表示すれば、前の商品画像が残って誤認される事態を防ぎやすくなります。
画像パス方式で外部ファイルを表示する
画像の本体を共有フォルダーなどに保管し、Accessには保存場所を記録する方法です。Accessファイルを大きくしにくい一方で、画像ファイルの移動、削除、アクセス権の影響を受けます。DBだけバックアップしても画像本体は戻せません。
構成の例
T_商品画像に画像パスを設け、フォームのイメージコントロールで該当ファイルを表示する構成にします。利用するAccessのイメージコントロールでパス項目へ連結できる場合はコントロールソースを設定し、それ以外はレコード移動時にPictureプロパティへ読み込む実装を検討します。連続フォームでは単票用の実装をそのまま流用せず、行ごとの表示を確認します。
| 管理するもの | 設計例 | 注意点 |
|---|---|---|
| 保存先 | 共有フォルダーの管理領域 | 担当者の個人PCへ依存させない |
| パス | 共通のUNCパス、または基準フォルダー+相対パス | 利用者ごとのドライブ文字の差を避ける |
| 命名 | 商品IDと画像IDに対応する名前 | 同名上書きを防ぐ |
| 権限 | 閲覧・登録・削除を分ける | Accessの画面制限とは別に設定 |
| 欠損時 | 画像なし表示と通知 | 直前の商品の画像を残さない |

UNCパスは、サーバー名と共有名で表すネットワーク上の場所です。例えば説明用の「\\server\share\images\item001.jpg」のような形式です。実在する保存先の指定ではないため、そのまま貼り付けず、管理者が決めたパスを使います。
パスが正しくても表示できない場合
実際の利用者で同じファイルを開けるか、画像形式が表示に対応しているか、ファイルが壊れていないかを確認します。管理者のPCだけで表示確認を終えると、一般利用者の権限不足を見逃します。移動や更新の前後に、画像とレコードの対応も確認してください。
容量とバックアップと将来の移行に備える
Accessのデータベース全体の上限は原則2GBで、システムオブジェクト用の領域なども必要です。個別の添付ファイルは256MBを超えられません。この上限まで詰め込む設計を勧めるものではなく、他のデータと将来の増加分を含めて余裕を確保します。
容量の目安を計算する
例えば、1枚2MBの画像を500枚持てば、画像の合計だけで約1,000MBです。1枚200KBなら500枚で約100MBになります。これは単純計算であり、実際のACCDBサイズは形式、圧縮、内部の領域などに左右されます。小さな試験データを登録し、増加量を測って見積もります。
JPEGなど、もともと圧縮されている形式は、添付によって大幅に縮むことを期待できません。表示用には必要十分な寸法を決め、原本写真が必要なら別の保管場所で管理する方法もあります。画質を落とす場合は、品番や傷の確認に支障がないか業務担当者が判断します。

削除後もファイルがすぐ小さくなるとは限らない
画像を削除しても、ACCDBの物理サイズがすぐに縮まるとは限りません。圧縮と修復を検討する場合はバックアップを取り、他の利用者が閉じている時間帯など、運用条件を確認して実施します。容量不足の根本対策は、増加量の管理と保存方式の見直しです。
保存方式ごとの復旧対象
| 方式 | バックアップする対象 | 復旧時の確認 |
|---|---|---|
| 添付ファイル型 | データを保存するACCDB | 商品IDと画像の対応・表示 |
| 分割DBの添付 | 添付を持つバックエンド、画面の原本 | リンク再設定と画像表示 |
| 画像パス方式 | DB・画像本体・保存先設定 | パス・権限・欠損・表示 |
外部画像を大量に登録する仕組みでは、ファイルのコピーに成功してからDB登録が失敗するなど、片方だけ残る場合があります。登録処理の失敗時にどう回収するか、どの画像が未使用かを点検する方法まで含めると、長期運用で整理しやすくなります。
Accessの設定や運用で解決が難しい場合は
設定変更だけで改善しない場合や、複数人での利用・外部DB・既存のVBAが関わる場合は、原因と影響範囲を整理してから改修を進めましょう。Accessの教科書では、既存Accessの修正や運用の見直しについて相談できます。対象画面、症状、再現手順をまとめると、調査の相談がしやすくなります。
SQL Server移行を見据える
添付ファイル型はAccess固有の扱いがあるため、そのままSQL Serverの同じ型へ置き換わる前提にはしません。移行時には画像を取り出し、画像管理テーブル、外部ストレージ、保存先を示す情報などへ設計し直します。画像ID、商品ID、ファイル名、容量などの対応表を残しておくと、移行後の照合がしやすくなります。

まとめ
少量の写真をレコードとまとめて保存するなら、ACCDBの添付ファイル型が使えます。フォームの添付欄を連結し、登録後は同じ商品IDで再表示を確認します。枚数が増える場合は画像パス方式も比較し、表示サイズと容量を区別してください。画像本体まで復旧できるバックアップを用意することが運用の要点です。
よくある質問
添付ファイル型はACCDBで利用する機能で、MDBへ同じ型のフィールドを追加することはできません。既存MDBで画像を扱う場合は、ACCDBへの変換、外部パス方式、既存のOLE方式などを比較します。ただし、変換すると他の機能や配布先の互換性へ影響する場合があるため、画像だけを理由に本番ファイルを変更しないでください。コピーを用意し、現在の機能、利用するAccessの版、既存データを確認したうえで、必要な方式を選びます。
まず同じ商品IDを見ているか、添付コントロールのコントロールソースが画像のフィールドになっているかを確認します。次にレコードが保存されているか、登録した形式を表示できるか、ファイルが正常かを調べます。外部パス方式なら、画像の移動・削除や利用者のアクセス権も原因になります。管理者のPCだけでなく、実際の利用者でファイルを開けるか確かめてください。画像がない場合に前の商品の写真が残らないよう、空欄時の表示も確認します。
通常は減りません。フォームの枠や表示モードを変える操作は、保存済み画像の見せ方を調整するもので、画像本体の解像度や容量を小さくする処理ではありません。容量を減らしたい場合は、登録前に画像の寸法と圧縮率を調整します。商品確認に必要な文字や細部が読めるか、業務上の画質も確認してください。原寸の写真を残す必要があるなら、原本を別途保管し、Accessでは縮小画像を使う方式も検討できます。登録後の容量増加も測定しましょう。
添付ファイル型では、1つのレコードに複数のファイルを保存できます。ただし、主画像、表示順、撮影日、正面・背面などの区分を厳密に管理したい場合は、画像1件ごとの子テーブルを設ける設計も有効です。商品IDで親の商品と結び、画像IDで各画像を識別します。複数添付ができるからといって、代表画像が自動で決まるわけではありません。フォームやレポートで何を表示するか、画像がない場合をどう見せるかも合わせて決めてください。
添付ファイル型へ正常に保存されていれば、画像の内容はデータベース内に保持されます。ただし、削除する前にフォームを開き直して保存を確認し、DBと元画像のバックアップ方針を決めてください。画像パス方式の場合は事情が違い、外部の元ファイルを削除すると表示できなくなります。また、原寸写真の保管義務や再編集の必要性がある業務では、Access内の縮小画像だけでは不足する場合があります。保存方式と原本の用途を確認してから判断します。
枚数や増加量が大きい場合、Accessファイルを膨らませにくい外部パス方式が候補になります。ただし、画像本体の権限、移動、欠損、バックアップを別に管理する必要があります。少量でレコードと一緒に保管したい場合は添付方式が分かりやすいこともあります。まず1枚の平均容量、毎月の追加枚数、保存期間から増加量を見積もり、少数の画像で速度と容量を測ってください。現在の枚数だけでなく、復旧と将来の移行まで含めて選ぶことが重要です。
Accessの添付ファイル型を、そのまま同じ型としてSQL Serverへ移せる前提にはしません。画像を取り出して外部保存するか、別の画像管理構造へ変換するかを検討します。その際、どの商品にどの画像が属するかを維持するため、商品ID、画像ID、ファイル名などの対応を残します。フォームの表示処理、アクセス権、バックアップも移行後の方式へ合わせる必要があります。先に少数の商品で移行と再表示を試し、件数と画像内容を照合してから全体へ展開します。
Accessの設定や運用で解決が難しい場合は
設定変更だけで改善しない場合や、複数人での利用・外部DB・既存のVBAが関わる場合は、原因と影響範囲を整理してから改修を進めましょう。Accessの教科書では、既存Accessの修正や運用の見直しについて相談できます。対象画面、症状、再現手順をまとめると、調査の相談がしやすくなります。
関連記事
参考情報
[1] Microsoft|レコードにファイルや画像を添付する
https://support.microsoft.com/ja-jp/access/attach-files-and-graphics-to-the-records-in-your-database
[2] Microsoft|Accessの仕様
https://support.microsoft.com/ja-jp/access/access-specifications
[3] Microsoft|Image.SizeMode
https://learn.microsoft.com/en-us/office/vba/api/access.image.sizemode
[4] Microsoft|Form.RecordsetType
https://learn.microsoft.com/en-us/office/vba/api/access.form.recordsettype
[5] Microsoft|クエリのデータを編集する
https://support.microsoft.com/ja-jp/access/edit-data-in-a-query