Accessでテーブルやクエリを作れるようになると、次にぶつかりやすいのが「現場の人にどうやってデータを入力・閲覧してもらうか」という問題です。
テーブルをそのまま開いて編集してもらう方法は簡単ですが、実務ではあまりおすすめできません。列を間違えて上書きしたり、必要なレコードを誤って削除したり、入力してほしくない項目まで変更されてしまったりする危険があるからです。
そこで活躍するのが、Accessのフォーム(Form)です。
フォームを使えば、テーブルやクエリを直接触らせることなく、入力・検索・閲覧・更新・印刷へつながる安全な業務画面を作れます。ボタンや入力欄を配置すれば、Accessに慣れていない人でも迷わず操作できる、いわば社内業務アプリの画面を作ることができます。
この記事では、単票フォーム・帳票フォーム・分割フォーム・メイン/サブフォームの違いから、テキストボックスやコンボボックス、コマンドボタンの設定、さらに起動時に表示する業務メニュー画面(ダッシュボード)の作り方まで、実務で必要になるポイントを順番に解説します。
テーブル設計やクエリの基本がまだ不安な方は、先に以下の記事を確認しておくと理解しやすくなります。
Accessのフォームとは?データを安全に操作するための「窓口」
Accessのフォームとは、テーブルやクエリに保存されているデータを、見やすく表示したり安全に入力・更新したりするための画面です。
たとえば「顧客マスタ」というテーブルに、顧客ID、会社名、担当者名、電話番号、住所などの項目があるとします。
テーブルを直接開けばデータそのものを編集できますが、利用者には次のような問題が起こりやすくなります。
- どの列を入力すればよいのか分かりにくい
- 重要なIDや管理項目まで変更できてしまう
- 列が多いと横スクロールが増えて使いにくい
- 誤ってレコードを削除する危険がある
- 入力ルールを画面上で伝えにくい
フォームを使えば、必要な項目だけを画面上に配置し、編集できる項目・閲覧だけの項目・選択式の項目を明確に分けられます。
つまりAccessでは、テーブルはデータを保存する場所、フォームは人がデータを扱うための画面と考えると分かりやすいです。
【Excelとの決定的な違い】Accessの「連結フォーム」はコードなしでデータと同期できる
Excel VBAを使ったことがある方は、「入力画面を作るならユーザーフォームを作って、テキストボックスの値をセルへ転記するVBAを書くのでは?」と思うかもしれません。
しかしAccessのフォームは、ここが大きく異なります。
Accessには連結フォーム(バウンドフォーム)という仕組みがあり、フォームのレコードソースにテーブルやクエリを指定し、各コントロールのコントロールソースにフィールドを設定するだけで、画面とデータを自動的に連動させられます。
つまり、基本的な登録・編集画面であれば、VBAコードを1行も書かずに作成できます。
| 比較項目 | Excel VBA ユーザーフォーム | Access フォーム |
|---|---|---|
| データとの接続 | セルへの転記処理をVBAで作ることが多い | レコードソースを指定するだけで連動可能 |
| データ更新 | 更新処理を自作する場合が多い | 連結フォームなら自動で更新される |
| 複数レコード表示 | ListBoxなどへの読込処理が必要になりやすい | 帳票フォームで簡単に一覧表示できる |
| 1対多データ | 自前の制御が必要 | メイン/サブフォームで実装しやすい |
| 向いている用途 | Excelブック内の補助入力画面 | データベースを使う本格的な業務画面 |
Excelのユーザーフォームにも高い自由度がありますが、データベースと画面を連携させる仕組みそのものはAccessの方が圧倒的に簡単です。
Excel VBAのユーザーフォームについて詳しく知りたい方は、こちらも参考にしてください。
フォームで覚えておきたい「レコードソース」と「コントロールソース」
Accessフォームを理解するうえで重要なのが、レコードソースとコントロールソースの違いです。
レコードソースとは
レコードソースは、そのフォーム全体がどのデータを扱うのかを指定するプロパティです。
たとえば顧客入力フォームであれば、次のように設定します。
- フォーム名:F_顧客入力
- レコードソース:T_顧客マスタ
テーブルだけでなく、選択クエリをレコードソースに指定することもできます。
コントロールソースとは
コントロールソースは、フォーム上のテキストボックスなどがどのフィールドと連動するかを指定するプロパティです。
たとえば「会社名」というテキストボックスのコントロールソースを「会社名」フィールドに設定すると、画面で入力した会社名がテーブルの会社名フィールドへ保存されます。
このようにデータと直接つながっているコントロールを連結コントロールと呼びます。
実務で使い分ける「4大フォーム形式」
Accessでは業務内容に合わせて、フォームの表示形式を使い分けます。
特に実務でよく使うのは、次の4種類です。
| フォーム形式 | 表示方法 | 向いている用途 | 特徴 |
|---|---|---|---|
| 単票フォーム | 1件ずつ表示 | 顧客登録、商品登録、社員マスタ | 入力項目を大きく配置しやすい |
| 帳票フォーム | 複数件を縦方向に連続表示 | 検索結果、一覧画面、履歴表示 | Excelの一覧表に近い感覚で使える |
| 分割フォーム | 単票+データシート | 検索しながら詳細編集 | 一覧と詳細を同時に確認できる |
| メイン/サブフォーム | 親1件+子複数件 | 請求書、受注、発注、案件管理 | 1対多のデータを非常に扱いやすい |
① 単票フォーム:1レコードを丁寧に入力する基本形
単票フォームは、1画面に1レコードだけを表示するフォームです。
たとえば顧客マスタなら、次のような項目を大きく配置できます。
- 顧客ID
- 会社名
- 担当者名
- 郵便番号
- 住所
- 電話番号
- メールアドレス
1件ずつ丁寧に確認できるため、新規登録画面や詳細編集画面に向いています。
Accessで最初に入力フォームを作るなら、まず単票フォームから始めるのがおすすめです。
② 帳票フォーム:Excelのように複数行を一覧表示
帳票フォームは、同じレイアウトを繰り返しながら複数レコードを縦方向に表示します。
Accessでは一般に連続フォームとして利用されます。
たとえば顧客一覧であれば、次のような表示ができます。
| 顧客ID | 会社名 | 担当者名 | 電話番号 |
|---|---|---|---|
| 1001 | 株式会社ABC | 田中 | 03-xxxx-xxxx |
| 1002 | 株式会社XYZ | 佐藤 | 06-xxxx-xxxx |
Excelの表に近い感覚で使えるため、検索結果一覧・履歴確認・在庫一覧・案件一覧などに便利です。
③ 分割フォーム:一覧と詳細を同時に見られる万能型
分割フォームは、フォーム形式の画面とデータシート形式の一覧を同時に表示するフォームです。
一覧から目的のレコードをクリックすると、そのレコードの詳細がフォーム部分に表示されます。
たとえば顧客管理なら、一覧側で会社名を探し、詳細側で住所や電話番号を編集するといった使い方ができます。
「一覧性も欲しいが、1件ずつ入力しやすい画面も欲しい」という場合に非常に便利です。
④ メイン/サブフォーム:1対多を扱う実務最頻出パターン
Accessで特に強力なのが、メインフォームとサブフォームを組み合わせる方法です。
代表例は請求書です。
請求書には、請求先や請求日といった「ヘッダー情報」と、商品名・数量・単価といった「明細情報」があります。
- メインフォーム:請求番号、顧客、請求日など
- サブフォーム:商品、数量、単価、金額などの複数行
データベース上では、一般的に次の2テーブルに分けて設計します。
- T_請求ヘッダー
- T_請求明細
両者を請求IDで関連付けておけば、メインフォームで現在表示している請求書に対応した明細だけをサブフォームへ表示できます。
これは1対多リレーションを画面として表現するAccessの王道パターンです。
請求書だけでなく、次のような業務でも非常によく使います。
- 受注ヘッダー+受注明細
- 発注ヘッダー+発注明細
- 案件情報+対応履歴
- 社員情報+資格履歴
- 顧客情報+商談履歴
フォーム作成手順① フォームウィザードで最短作成する
最初からデザインビューですべて配置することもできますが、初心者の方はフォームウィザードで土台を作ってからデザインを調整する方法がおすすめです。
- Accessで対象データベースを開きます。
- リボンの「作成」タブを開きます。
- 「フォームウィザード」をクリックします。
- 元にするテーブルまたはクエリを選択します。
- フォームに表示したいフィールドを選択します。
- レイアウトを選択します。
- フォーム名を入力します。
- 完了をクリックします。
たとえば「T_顧客マスタ」からフォームを作成する場合、顧客ID、会社名、担当者名、住所、電話番号などの必要な項目だけを選択します。
作成直後のフォームは見た目が簡素でも問題ありません。
まずはデータが正しく表示され、入力した内容がテーブルへ保存されることを確認しましょう。その後、デザインビューで見た目や操作性を整えていきます。
フォーム作成手順② デザインビューで画面を整える
フォームを実務向けに仕上げるには、デザインビューで各コントロールやフォーム自体のプロパティを調整します。
フォームをナビゲーションウィンドウで右クリックし、「デザインビュー」を選択してください。
フォームでよく使う主要コントロール
| コントロール | 用途 | 実務例 |
|---|---|---|
| テキストボックス | 文字・数値・日付の入力 | 会社名、金額、日付 |
| コンボボックス | 候補から値を選択 | 部署、商品、担当者 |
| チェックボックス | はい/いいえを入力 | 有効フラグ、完了フラグ |
| コマンドボタン | 操作を実行 | 新規、保存、閉じる、印刷 |
| サブフォーム | 別フォームを埋め込む | 請求明細、履歴一覧 |
テキストボックスの設定|書式とIMEモードを調整する
フォームで最もよく使うのがテキストボックスです。
会社名や氏名、日付、数量、単価など、多くの項目はテキストボックスを使って入力します。
コントロールソースを設定する
テキストボックスをテーブルのフィールドと連結する場合は、プロパティシートの「データ」→「コントロールソース」を設定します。
たとえば会社名の入力欄であれば、コントロールソースに会社名を指定します。
これにより、テキストボックスへ入力した値が現在のレコードの会社名フィールドへ保存されます。
書式プロパティを設定する
数値や日付は、書式を設定すると非常に見やすくなります。
| データ | 書式例 | 表示例 |
|---|---|---|
| 日付 | yyyy/mm/dd | 2026/08/31 |
| 金額 | #,##0 | 125,000 |
| 率 | 0.0% | 12.5% |
IMEモードで日本語入力を自動切り替えする
日本語の業務画面では、IMEモードの設定が意外に重要です。
たとえば「会社名」や「住所」は日本語入力、「顧客コード」や「メールアドレス」は半角英数字入力にしたい場合があります。
各テキストボックスのIME関連プロパティを調整しておけば、入力欄へ移動したときに適切な入力モードへ切り替えやすくなります。
実務では、入力者が毎回「半角/全角」を切り替えなくて済むだけでも、入力ミスとストレスを大きく減らせます。
コンボボックスの設定|マスタから選ばせて入力ミスを防ぐ
部署名や商品名、担当者名など、あらかじめ候補が決まっている項目は、手入力させるよりコンボボックスを使う方が安全です。
たとえば部署を自由入力にすると、次のような表記揺れが起こる可能性があります。
- 営業部
- 営業
- 営業 部
- 営業部門
コンボボックスで部署マスタから選択させれば、このような入力揺れを防げます。
値集合ソースとは
コンボボックスで「どの候補を表示するか」を指定するのが値集合ソースです。
たとえば部署マスタとして以下のテーブルがあるとします。
- 部署ID
- 部署名
コンボボックスの値集合ソースには、テーブルやクエリだけでなくSQL文を指定することもできます。
SELECT
部署ID,
部署名
FROM
T_部署マスタ
ORDER BY
部署ID;
このSQLを値集合ソースとして設定すれば、部署マスタの内容をコンボボックスに表示できます。
「表示する値」と「保存する値」を分けるのがポイント
実務では、画面には部署名を見せつつ、テーブルには部署IDを保存する設計がよく使われます。
たとえば利用者には「営業部」と表示しながら、内部的には「10」という部署IDを保存します。
この場合はコンボボックスの主なプロパティを次のように設定します。
| プロパティ | 設定例 | 意味 |
|---|---|---|
| 値集合ソース | T_部署マスタまたはSELECT文 | 候補データの取得元 |
| 列数 | 2 | 部署IDと部署名の2列 |
| 連結列 | 1 | 1列目の部署IDを保存 |
| 列幅 | 0cm;4cm | IDを非表示にし、部署名だけ見せる |
| 入力チェック | はい | 一覧にない値の入力を防ぐ |
この設計にすると、画面の使いやすさとデータベースの正規化を両立できます。
コマンドボタンの設定|新規・保存・閉じるをノーコードで作る
Accessフォームではコマンドボタンを配置すると、利用者に「次に何をすればよいか」が伝わりやすくなります。
たとえば入力フォームでよく配置するボタンは次の3つです。
- 新規登録
- レコード保存
- フォームを閉じる
これらはVBAを書かなくても、コマンドボタンウィザードを使って作成できます。
コマンドボタンウィザードの基本手順
- フォームをデザインビューで開きます。
- 「デザイン」タブからコマンドボタンを選択します。
- フォーム上の配置したい場所をクリックします。
- コマンドボタンウィザードが表示されます。
- カテゴリと実行したい処理を選びます。
- ボタンに表示する文字を設定します。
- 完了をクリックします。
代表的な処理として、レコード操作やフォーム操作の中から「新しいレコードの追加」「レコードの保存」「フォームを閉じる」などを選択できます。
まずはウィザードを使い、より細かな制御が必要になった段階でVBAへ進むのがおすすめです。
【参考】VBAでフォームを開く・閉じる基本コード
フォーム操作はウィザードでも実装できますが、業務システムを作り込んでいくとVBAを使った方が柔軟に制御できる場面も増えてきます。
たとえばメニュー画面から顧客入力フォームを開き、メニュー画面を閉じるコードは次のように書けます。
'==================================================
' 機能:顧客入力フォームを開き、メニュー画面を閉じる
'==================================================
Private Sub btn顧客入力_Click()
' 顧客入力フォームを通常表示で開く
DoCmd.OpenForm "F_顧客入力", acNormal
' 現在のメニュー画面を閉じる
DoCmd.Close acForm, Me.Name
End Sub
DoCmd.OpenFormメソッド
DoCmd.OpenFormは、指定したフォームを開くためのAccess VBAの代表的なメソッドです。
基本形は次のような考え方です。
- 第1引数:開きたいフォーム名
- 第2引数:表示方法
上記コードでは、“F_顧客入力”というフォームをacNormalで通常表示しています。
フォーム名は文字列として指定するため、ダブルクォーテーションで囲みます。
DoCmd.Closeメソッド
DoCmd.Closeは、フォームやレポートなどのAccessオブジェクトを閉じるメソッドです。
今回の例では、次の指定をしています。
- acForm:閉じる対象はフォーム
- Me.Name:現在開いている自分自身のフォーム名
Meは現在コードが動いているフォーム自身を表します。そのため、フォーム名を直接書かなくてもMe.Nameで現在のフォーム名を取得できます。
見た目を整える3つのコツ|「使える画面」はデザインで決まる
フォームは動けば完成ではありません。
業務で毎日使う画面だからこそ、誰が見ても操作方法を迷わないデザインにすることが重要です。
1. 入力欄をきれいに揃える
テキストボックスやコンボボックスの左端・右端、幅、高さがバラバラだと、画面全体が非常に見づらくなります。
複数のコントロールを選択し、Accessの配置機能を使って左揃え・上揃え・サイズ調整を行いましょう。
特に「ラベルの幅」と「入力欄の開始位置」を揃えるだけでも、かなり整った印象になります。
2. 余白を確保する
入力欄やボタンを詰め込みすぎると、どこを見ればよいのか分からなくなります。
項目同士の間隔を適度に取り、関連する項目をグループ化しましょう。
たとえば顧客登録画面なら、次のように分類できます。
- 基本情報:顧客ID、会社名、担当者名
- 所在地:郵便番号、都道府県、住所
- 連絡先:電話番号、メールアドレス
画面上でもこの単位で余白を設けると、直感的に理解しやすくなります。
3. タブオーダーを必ず確認する
実務フォームではタブオーダーも非常に重要です。
タブオーダーとは、Tabキーを押したときにカーソルがどの順番で入力欄へ移動するかを決める設定です。
理想的には、画面の上から下、左から右へ自然に移動するように設定します。
タブオーダーがバラバラだと、キーボード入力中心の利用者にとって非常に使いにくい画面になります。
特に大量のデータを入力する業務では、マウスを使わずTabキーとEnterキー中心で操作できる画面を目指すと入力効率が大きく向上します。
フォームの主要プロパティ|実務で重要な設定を覚えよう
フォームそのものにも多数のプロパティがあります。
すべて覚える必要はありませんが、次の項目は実務で頻繁に使います。
| プロパティ | 役割 | 実務での使い方 |
|---|---|---|
| レコードソース | フォームの元データ | テーブルやクエリを指定 |
| 既定のビュー | 表示形式 | 単票フォームや帳票フォームを選択 |
| 追加の許可 | 新規レコード追加の可否 | 閲覧専用画面では「いいえ」 |
| 更新の許可 | 既存データ編集の可否 | 検索画面では「いいえ」にすることもある |
| 削除の許可 | レコード削除の可否 | 誤削除防止のため「いいえ」が有効 |
| データ入力用 | 新規入力専用にする設定 | 登録専用フォームで活用 |
| ナビゲーションボタン | 下部のレコード移動ボタン | 独自ボタンを使うなら非表示にする |
安全なフォーム設計では「編集させない項目」を決める
業務フォームでは、すべての項目を自由に変更できるようにする必要はありません。
たとえば次の項目は、利用者に直接編集させない方が安全な場合があります。
- オートナンバー型の主キー
- 登録日時
- 更新日時
- 作成者ID
- システム内部で使う管理フラグ
テキストボックスには「編集ロック」や「使用可能」といったプロパティがあります。
表示はしたいが編集させたくない場合は、入力欄をロックする設計が有効です。
「必要なものだけ編集可能にする」という考え方は、Accessのフォーム設計で非常に重要です。
実務で差がつく!業務メニュー画面(ダッシュボード)を作る
入力フォームや検索フォームを個別に作ったら、次に業務メニュー画面を用意すると一気にシステムらしくなります。
Accessを起動した利用者が最初に見る画面を、たとえば次のようにします。
- 顧客情報を入力する
- 受注情報を入力する
- 売上一覧を見る
- 請求書を印刷する
- システムを終了する
利用者はこの画面のボタンだけを操作し、裏側にあるテーブルやクエリを直接開かない運用にします。
メニュー画面は「非連結フォーム」で作る
入力フォームとは異なり、メニュー画面そのものはデータを編集する必要がありません。
そのため、レコードソースを設定しない非連結フォームとして作成するのが一般的です。
フォーム上にタイトルとコマンドボタンを配置し、それぞれのボタンから必要なフォームやレポートを開きます。
メニューボタンから画面を開くVBA例
たとえば、メニュー画面に「顧客入力」「売上一覧」「終了」の3つのボタンを配置した場合、以下のようなコードを使用できます。
'==================================================
' 顧客入力画面を開く
'==================================================
Private Sub btn顧客入力_Click()
' 顧客入力フォームを開く
DoCmd.OpenForm "F_顧客入力", acNormal
End Sub
'==================================================
' 売上一覧画面を開く
'==================================================
Private Sub btn売上一覧_Click()
' 売上一覧フォームを開く
DoCmd.OpenForm "F_売上一覧", acNormal
End Sub
'==================================================
' Accessを終了する
'==================================================
Private Sub btn終了_Click()
' Accessアプリケーションを終了する
DoCmd.Quit
End Sub
DoCmd.Quitメソッド
DoCmd.Quitは、Access自体を終了するためのメソッドです。
メニュー画面に「終了」ボタンを作っておくと、利用者がAccessの画面構造を意識せずにシステムを終了できます。
ただし、未保存の設計変更や編集途中のデータが存在する運用では、終了前の確認処理を追加した方が安全な場合があります。
Access起動時にメニュー画面を自動表示する
業務システムとして運用するなら、Accessファイルを開いたときにメインメニューを自動表示させると使いやすくなります。
Accessのオプションから、起動時に表示するフォームを指定できます。
- Accessの「ファイル」をクリックします。
- 「オプション」を開きます。
- 「現在のデータベース」を選択します。
- 「フォームの表示」からメニュー画面を選択します。
- 設定を保存し、データベースを開き直します。
たとえばF_メインメニューを指定しておけば、利用者がAccessファイルを開いた直後にそのフォームが表示されます。
ナビゲーションウィンドウを隠してテーブルを直接触らせない
メニュー画面を作っても、左側のナビゲーションウィンドウにテーブルやクエリがすべて表示されていると、利用者が直接開いてしまう可能性があります。
業務用として配布する場合は、ナビゲーションウィンドウを非表示にする運用も検討しましょう。
Accessのオプションにある「ナビゲーションウィンドウを表示する」設定を変更することで、通常利用時に裏側のオブジェクトを見せない構成にできます。
利用者から見えるのは、基本的に次のような画面だけです。
- メインメニュー
- 入力フォーム
- 検索・一覧フォーム
- 印刷画面
こうすることで、Accessのデータベースでありながら、利用者にとっては専用の業務アプリケーションのように扱えます。
ただし「非表示=完全なセキュリティ」ではない
ここは非常に重要です。
ナビゲーションウィンドウを隠したりフォームからしか操作できないようにしたりすることは、誤操作防止には非常に有効ですが、それだけで強固なセキュリティ対策になるわけではありません。
Accessの設計に詳しいユーザーであれば、設定次第ではデータベースオブジェクトへアクセスできる可能性があります。
そのため、重要な業務データを扱う場合は、フォームによる操作制限だけでなく、次のような対策も検討してください。
- ファイルや共有フォルダのアクセス権を適切に設定する
- フロントエンドとバックエンドを分割する
- 定期的にバックアップする
- 必要に応じてSQL Serverなどのサーバーデータベースと連携する
メイン/サブフォーム作成の基本手順
請求書や受注入力のような本格的な画面を作る場合は、メイン/サブフォームを使います。
たとえば次の構成を考えてみましょう。
親テーブル:T_受注
- 受注ID
- 受注日
- 顧客ID
- 担当者ID
子テーブル:T_受注明細
- 受注明細ID
- 受注ID
- 商品ID
- 数量
- 単価
T_受注の受注IDと、T_受注明細の受注IDを1対多で関連付けます。
そのうえで、次のフォームを作成します。
- F_受注入力:単票フォーム
- SF_受注明細:帳票フォーム
F_受注入力の中にSF_受注明細をサブフォームとして配置し、リンク親フィールドとリンク子フィールドに受注IDを設定します。
これにより、メインフォームで受注ID「1001」を開いているときは、サブフォームに受注ID「1001」の明細だけが表示されます。
別の受注レコードへ移動すれば、サブフォームの明細も自動的に切り替わります。
この自動連動こそ、Accessが業務システム開発で非常に使いやすい理由の1つです。
実務で使う際の注意点・エラー対策
入力フォームの元データは更新可能なクエリにする
フォームのレコードソースとしてクエリを使用する場合、クエリの作り方によってはフォームからデータを更新できない場合があります。
複雑な集計クエリやGROUP BYを含むクエリなどは、通常の入力フォームには向きません。
登録・編集用フォームでは、更新可能なテーブルまたはクエリをレコードソースとして使用してください。
主キーは必ず設定しておく
フォームでレコードを安全に編集するためにも、元テーブルには主キーを設定しておくことが重要です。
主キーがないテーブルでは、どのレコードを一意に識別するのか曖昧になり、更新や関連付けの設計が難しくなります。
マスタ項目を自由入力にしない
部署、担当者、商品、得意先など、マスタとして管理している値は極力コンボボックスから選択させましょう。
自由入力を許すと、表記揺れや存在しない値が登録されやすくなります。
削除機能は慎重に作る
「削除」ボタンを簡単に配置すると、利用者が誤操作する可能性があります。
実務では、単純削除ではなく削除確認を表示する、または物理削除せず無効フラグ・削除フラグを使って論理削除する設計も検討しましょう。
フォーム名・コントロール名にルールを決める
フォーム数が増えてくると、名前の付け方が非常に重要になります。
たとえば次のように接頭辞を揃えておくと管理しやすくなります。
| 種類 | 命名例 |
|---|---|
| テーブル | T_顧客マスタ |
| クエリ | Q_顧客一覧 |
| フォーム | F_顧客入力 |
| サブフォーム | SF_受注明細 |
| レポート | R_請求書 |
命名ルールを最初に決めておくと、後からVBAを書くときにもフォーム名やクエリ名を判別しやすくなります。
おすすめの業務画面構成
小規模なAccess業務システムであれば、次のような構成から始めると分かりやすいです。
| 画面 | フォーム形式 | 役割 |
|---|---|---|
| F_メインメニュー | 非連結フォーム | 各機能への入口 |
| F_顧客入力 | 単票フォーム | 顧客の登録・編集 |
| F_顧客検索 | 帳票フォーム | 顧客一覧・検索 |
| F_受注入力 | メイン/サブフォーム | 受注ヘッダーと明細入力 |
| F_売上一覧 | 帳票または分割フォーム | 売上の確認 |
このように「メニュー → 入力・検索・印刷」という導線を作るだけでも、テーブルを直接開いて操作する状態から大きく進化します。
フォーム設計で最も大切なのは「利用者目線」
Accessフォームは、VBAをたくさん書けば優れた画面になるわけではありません。
むしろ実務では、次のような細かな工夫の方が重要です。
- 入力項目を必要最小限にする
- 入力する順番に項目を並べる
- 選べるものはコンボボックスで選ばせる
- 編集不要な項目はロックする
- ボタン名を「登録」「閉じる」のように分かりやすくする
- 関連項目を近くに配置する
- タブオーダーを自然な順番にする
- テーブルやクエリを利用者に直接触らせない
フォームは、データベースと利用者の間に立つ「安全装置」兼「操作案内」です。
技術的に高度な画面よりも、初めて触った人が説明書なしで操作できる画面を目指すことが、実務では非常に重要です。
まとめ|Accessフォームは業務システムの「顔」
今回は、Accessのフォーム作成とデザインについて解説しました。
特に重要なポイントを整理すると、次のとおりです。
- フォームはテーブルやクエリを安全に操作するための画面
- Accessの連結フォームなら、VBAを書かずにデータと自動連動できる
- 単票・帳票・分割・メイン/サブフォームを用途に応じて使い分ける
- コンボボックスを使えばマスタから値を選択でき、入力ミスを減らせる
- コマンドボタンはウィザードを使えば新規・保存・閉じる操作を簡単に実装できる
- IMEモードやタブオーダーまで調整すると入力効率が大きく向上する
- メニュー画面を作ればAccessを本格的な業務アプリのように運用できる
- ナビゲーションウィンドウを隠せば誤操作防止につながる
- ただし画面を隠すことと、本格的なアクセス制御・セキュリティ対策は別物
フォームはAccess業務システムの「顔」です。
テーブルやクエリがどれだけ正しく設計されていても、入力画面が分かりにくければ現場では入力ミスが発生します。逆に、入力順序や選択肢、ボタン配置まで丁寧に作り込めば、Accessに慣れていない利用者でも迷わず操作できます。
Accessを単なる「データを保存するファイル」ではなく、現場で使える業務システムへ進化させる第一歩がフォーム設計です。
テーブル・クエリ・フォームの流れをまとめて復習したい方は、以下の記事もあわせて確認してみてください。
- 【Access入門①】テーブル設計とデータ型の基本!
- 【Access入門②】クエリ(Query)の使い方完全ガイド!
- 【VBA】ユーザーフォームの作り方完全ガイド!
- 【VBA比較】Excel VBAとAccess VBAの違いと共通点!
そしてフォームで入力・検索する画面が作れたら、次に必要になるのが「きれいな帳票として印刷・PDF出力する仕組み」です。
次回の「Access入門④」では、請求書や一覧表をきれいにレイアウトして印刷できるレポート(Report)の作成方法を解説します。
請求書を1件ずつ印刷する方法はもちろん、複数の帳票を連続出力したり、PDFとして自動保存したりする実務的な仕組みまで扱います。
入力はフォーム、出力はレポート。この2つを組み合わせると、Accessで作れる業務システムの完成度が一気に高まります。
の作成とデザイン!誰でも使える入力画面・メニュー画面を作る完全ガイド.png)