フォームは「ユーザーインターフェイス」として、利用者の目に一番触れるオブジェクトで、ある意味Accessの顔役といえます。そんなフォームですが、実は用途に応じて様々な種類があります。各フォームの用途や特性を理解すると、より効率的で便利なシステムの開発につながります。
本記事では、フォームの概要と、フォームの全種類について解説します。
フォームの概要
Accessにおけるフォームの位置づけ
Accessは、複数のオブジェクトを組み合わせることで、その機能を最大限に発揮します。
以下の図は、Accessにおける各オブジェクトの関連性を示したものです。ご覧いただくと分かるように、フォームは「ユーザインターフェイス」として、テーブルやクエリのデータを、画面を通じてユーザーに届けたり、ユーザがデータ入力しやすい画面を提供したりと、重要な役割を担っています。

人間とコンピューター(アプリケーション、WEBサイト)の接点として、実際に操作する画面。画面のデザインやボタンの配置、文字のフォント、操作方法を含めて人間が操作するコンピュータの要素全般を指します。
フォームを利用することのメリット
データの閲覧、編集(新規追加、変更、削除等)は、テーブルやクエリを直接開くことで行うことも可能です。しかし、フォーム画面を経由して行う方がはるかにメリットが大きいです。
どのようなメリットがあるのか、次の3点で解説します。
- データ保護の徹底やデータ信頼性を向上できる
- 効率的なデータ入力が可能
- ユーザフレンドリーな画面設計によるストレス軽減
データ保護の徹底やデータ信頼性を向上できる
フォームのプロパティ設定を活用することで、テキストボックス単位はもちろん、フォーム全体に対してデータの削除や更新を禁止する設定が可能です。この機能により、「この画面ではデータの閲覧のみ可能とし、変更は一切できないようにしたい」といったニーズに対応できます。さらに、ログイン時の権限設定と組み合わせることで、社員ごとに操作できる範囲を細かく制御することも可能です。
また、テキストボックスに対して入力規則を設定することで、入力できるデータの型(数値、テキスト、日付など)や桁数を制限したり、特定の範囲内の値のみを受け付けるようにしたりできます。
これらの機能によって、データ保護を徹底できるだけでなく、誤入力などを防ぎ、データ信頼性の向上にもつなげることができます。
効率的なデータ入力が可能
フォームには、「コンボボックス」や「リストボックス」のように、あらかじめ用意された選択肢の中から入力できるオブジェクトを配置できます。さらに、テキストボックスに初期値を表示させておく「規定値」の設定や、あるテキストボックスへの入力内容に応じて、別のテキストボックスにデータが自動的に反映されるような仕組みを構築することも可能です。
上記はあくまで一例ですが、フォームには手入力を極力減らし、効率的なデータ入力を実現するための様々な機能が備わっています。
ユーザフレンドリーな画面設計によるストレス軽減
フォームの画面は、開発者の裁量によって自由に設計できます。画面サイズ、文字の大きさ、フォント、色使い、レイアウト、そしてカーソルの移動順序といった要素を細かく設定することで、利用者が快適に使える画面を作り上げることが可能です。
これは、前述の「効率的なデータ入力」にも関連する重要な点ですが、何よりもユーザーがストレスを感じることなく作業を進められることは、フォームを活用する上で非常に大きな利点と言えるでしょう。

この辺りの作業は、成果が目に見えるので作業も楽しいですよ
フォームの種類
フォームにはデータの表示方法等に応じて、次の7種類が存在します。それぞれ概要を解説します。
- 帳票フォーム
- 単票フォーム
- データシートフォーム
- 分割フォーム
- サブフォーム
- ダイアログフォーム
- ナビゲーションフォーム
帳票フォーム

【特徴】
- 複数レコードを一覧形式で表示。
- 後述するデータシート形式と似ているが、より柔軟なレイアウト設計が可能。
【メリット】
- [一覧性の高さ] 複数レコードの情報(データ)を一度に把握可能。
- [一括更新] 複数レコードの同じフィールドを一括更新することも可能。
- [柔軟なレイアウト] 後述するデータシートフォームよりも自由度の高いレイアウト設計が可能。(上部に検索ボックスを設置したりと追加機能にも柔軟に対応可能。)
【デメリット】
- [詳細情報の確認] 各レコードの全情報を一度に表示するには、表示スペースに限界がある。横スクロールも可能だが、見づらさは否めない。
- [複雑なレイアウトの難しさ] あくまで”一覧表”なので、複雑なレイアウトは苦手。
単票フォーム

【特徴】
- 1件のレコードの全フィールドを1画面に表示。
- 個々のレコードの詳細な情報を確認・編集するのに適している。
- コンボボックス、リストボックスはもちろん、オプションボタンやタブコントロールなど様々なコントロールを配置可能。
【メリット】
- [見やすさ] 1つのレコードの情報を大きく表示できるため、内容をじっくり確認可能。
- [入力のしやすさ] 各フィールドを独立して配置できるため、入力しやすいレイアウトを自由に設計可能。また非連結フォームにすることで、既存データへの不用意な干渉を防げる。
【メリット】
- [一覧性の低さ] 複数レコードを同時に閲覧することができない。
- [大量データの処理] 複数レコードを閲覧する場合は、ボタンをクリックするなどしてレコードを移動する必要があるため、手間がかかる。
データシートフォーム

【特徴】
- テーブルのデータシートビューとほぼ同じ形式で、複数レコードを一覧表で表示する。 比較的簡易に作成できるため、メンテナンスやデータチェック用として、開発途中の一時的なフォームとして活用する場合が多い。
【メリット】
- [高い一覧性] 非常に多くのレコードを一度に表示可能。
- [作成が容易]同じ一覧表でも、帳票フォームより少ない手間で作成可能。
- [簡単な操作性] フィルタリングや並べ替えなどの基本操作が容易。
【メリット】
- [詳細情報の確認] 各レコードの全情報を一度に表示するには、表示スペースに限界がある。横スクロールも可能だが、見づらさは否めない。
- [レイアウトの自由度の低さ] データシートビューの形式から大きく変更できない。
- [配置できるコントロール種別が少ない] 配置可能なコントロール種別に限界がある。
分割フォーム

【特徴】
- 単票形式とデータシート形式を一つのフォーム内で同時に表示可能。基本的には上部を単票、下部をデータシートで形式することが多いが、左右に分割することも可能。 一方の形式でレコードを選択すると、もう一方の形式にそのレコードの詳細が表示されるなど、両形式は連動している。
【メリット】
- [単票とデータシートの良いとこ取り] データシートで目的のレコードを素早く見つけ、詳細情報の閲覧や編集は単票で行うなど、両形式の良いところを活用できる。
【メリット】
- 表示スペースの制約: 2つの形式を同時に表示するため、それぞれの表示スペースが狭くなるのは否めない。
サブフォーム

【特徴】
- 別のフォームを一つのフォーム内に埋め込む形式。 通常、一対多のリレーションシップを設定したテーブル間のデータを同時に表示・編集するために使用する。例として、今回サンプルとして示した上記画像では、社員情報フォームの中に、該当社員の保持している資格情報を表示するサブフォームを配置している。
【メリット】
- [データ関連性の明確化] 関連する情報をまとめて表示できるため、データの関連性が理解しやすい。
- [効率的なデータ管理] 複数のテーブルにまたがる情報を一つの画面で管理できる。
【メリット】
- [作成の複雑さ] 複数のフォームを連携させる必要があるため、作成に手間がかかる。ただし、テーブル間のリレーションシップを設定した状態で、フォーム作成ウィザードを使用すると比較的簡易に作成可能。
上記で触れている「1対多のリレーションシップ」について、詳細はこちら↓の記事でも詳しく解説しています。
サブフォームの作成手順については、こちらの記事で解説しています。
ダイアログフォーム

【特徴】
- データ表示を行うためのフォームではなく、特定の処理を実行するためのポップアップウィンドウ(他のフォームの上に表示される)のような形式のフォーム。
- メインのフォームとは独立して表示され、ユーザーの応答(ボタンのクリックなど)を待って処理を続行するような用途に用いられる。例として、今回サンプルとして示した上記画像では、特定の日付のみ更新を行うため、フォームには指定用の日付と実行用のコマンドボタンを配置されている。
【メリット】
- [処理の分離]メ処理の実行機能を別ウインドウに分けることで、メインフォームの複雑さを緩和することができる。また別ウインドウに処理を分けることで、特定の操作や情報に対して、ユーザーの注意を引くことができる。
- [柔軟な画面設計] 用途に合わせて自由にレイアウトやコントロールを配置可能。
【メリット】
- [過多な使用は煩雑] ダイアログフォームを頻繁に表示すると、ユーザーを混乱させる可能性があるため、使いどころを考慮する必要がある。
ナビゲーションフォーム

【特徴】
- 作成済みのフォームやレポートを、タブで切替られる画面に表示することができるフォーム。これにより、素早く各種情報にアクセスすることが可能。また、タブは水平や垂直に複数増やすことができる。
- 上図サンプルでは、前述した帳票フォームを「F_帳票フォーム」タブに配置している。
【メリット】
- [操作性の向上]タブを切り替えるだけで、あらかじめ設定した情報にアクセスできるため、操作性が向上につながる。
- [画面スペースの確保]同一画面でより多くの情報を掲載可能。
- [直感的な作成]ナビゲーションフォームの作成は、既存のフォームやレポートをドラッグ&ドロップすることで追加可能。こういった直感的な操作が開発ハードルを下げてくれる。
【メリット】
- [デザインの制約] ナビゲーションフォームの構造上、表示できるコンテンツのレイアウトにはある程度の制約がある。
- [パフォーマンス低下] あまりに多くのオブジェクトをナビゲーションに含めると、フォームのロードや切り替えに時間がかかる可能性がある。
フォームデザインの画面構成
ここまで各フォームの概要をご説明しましたが、実はフォームは3層の「セクション」で構成されています。フォームを作成するためには、この画面構成を理解することが重要です。
下表がフォームの「セクション」です。一つずつ解説します。
- フォームヘッダー/フォームフッター
- ページヘッダー/ページフッター
- 詳細
フォームヘッダー/フォームフッター

フォームヘッダーは、フォームの先頭に一度だけ表示されるセクションです。サンプル画像のようにフォームのタイトルや検索ボックス、フィールド名を配置するのに適しています。
フォームフッターは、フォームの末尾に一度だけ表示されるセクションです。サンプル画像のように閉じるボタンや、必要に応じて合計、平均などの計算結果を配置するのに適しています。
ページヘッダー/ページフッター

ページヘッダーは、フォームが印刷または印刷プレビュー表示される際に、各ページの先頭に表示されるセクションです。サンプル画像のようにフィールド名などを配置するのに適しています。

印刷ページが1頁で済む場合は、フォームヘッダーのフィールド名で対応できるけど、複数頁に渡り印刷する場合はページヘッダーにフィールド名を設定することで全頁に反映します。
ページフッターは、フォームが印刷または印刷プレビュー表示される際に、各ページの末尾に表示されるセクションです。ページ番号、印刷日時などを配置するのに適しています。
ご説明したとおり、ページヘッダー/フッターはあくまで印刷時に表示されるセクションであるため、フォームビューでは表示されません。多くの場合、印刷にはレポートを使用しますので、ページヘッダー/フッターを使用する機会は多くないでしょう。
ここまで読んで気づいた方もいらっしゃるかもしれませんが、フォームヘッダーとページヘッダーの両方に(ラベルコントロールで作成した)フィールド名を設定した場合、フォームビューではページヘッダーが表示されないので大丈夫ですが、印刷プレビューではフィールド名が重複して表示されてしまいます。

これを避ける一つの方法として、印刷時はフォームヘッダーを表示しない方法があります。フォームヘッダーのプロパティ設定で、書式の「表示対象」を「画面のみ」に設定してみてください。
詳細

選択したテーブルやクエリの各レコードの内容を表示するために使用する、フォームのメインともいえるセクションです。テキストボックス、コンボボックス、チェックボックスなどのコントロールを配置し、各フィールドの値を表示・編集できるようにします。
帳票フォームの場合、詳細セクションがレコードの数だけ繰り返して表示され、単票フォームの場合は、一度に1つのレコードの詳細が表示されます。
まとめ
今回はフォームの基本的な概要ということで、各オブジェクトにおけるフォームの位置づけや、フォームの種類を解説しました。
使いやすいフォームを作成できれば、作業が効率的になるだけでなく、ユーザへの心理的なストレスも与えません。そのためにも、各フォームの特性をしっかり理解していきましょう。