これまで、Accessのテーブルやクエリについてそれぞれ解説してきました。
今回はAccessのフォームについてです。
フォームについて理解し作成できれば、Accessで簡単な管理システムなどが作成できます。
この記事では、
- フォームとは何か?
- フォームのメリットデメリット
- 簡単なフォームの作成方法
について、わかりやすく解説します。
Accessのフォームとは?
Accessのフォームとは、テーブルで保管しているデータを扱うための画面です。
私個人的には、Excelなどの表でデータを管理するより、フォームを使ったほうがデータの正確性も増しますし、誤ってデータを削除したりすることが無くなるので管理が楽です。
Accessでフォームを使わないなら、Excelでデータ管理したほうがいい、と思うくらい、個人的にはAccessのフォームは必須で使うべき機能です。
フォームの種類
Accessのフォームにはいくつか種類があります。
ここでの使用している顧客データはニセモノです。ランダムに生成できるこちらのサイトを使用しました。
https://hogehoge.tk/personal/generator/
単票フォーム
単票フォームは、ひとつのレコードのみがフォームに表示されます。

次のレコードに移動する際は、下の移動ボタンから移動できます。

その隣のボタンは、末尾のレコードに移動することができます。

新規追加する場合は、その隣のボタンを押すと、空欄のフォームが表示されるのでそこから登録します。


保存ボタン等はなく、値を入れるとレコードが自動保存される仕組みです。

テーブルを見てみると最下行に追加されています。

レコードを削除する場合はテーブルから直接削除する必要があります。
帳票フォーム
帳票フォームは、すべてのレコードがフォームに表示されます。スクロールすると次のレコードが表示されます。

一番下までスクロールすると、空のフォームになりレコードの新規追加ができます。こちらも値を入れるとレコードが自動保存されます。
帳票フォームを応用して、デザインを独自に作成する方法もあります。
こんな感じです。必要なデータだけ表示させることも可能です。ここから別フォームへ遷移させて情報詳細を表示させたり、新規登録画面を別フォームで作成したりすると管理システムっぽくなります。

データシート
おそらく使うことがほぼないと思いますが、テーブルをそのまま表示させる形式です。Excelのように行追加でデータ追加します。
テーブルと同じ見た目なので、わざわざフォームでこれを選ぶことはなさそう。

非連結フォーム
このような名称のフォームがあるわけではないですが、どのテーブルやクエリにも連結させないフォームのことをそう呼んでいます。
私自身はAccessでシステムを作成するときは、8割が非連結フォームです。このフォームで何をするかというと、たとえば単票や帳票フォームのように自動保存させたくないときに使用します。
テーブルやクエリに連結させないことで、フォームで入力したデータを自分のタイミングでテーブルに追加することが可能です。
完全にテーブルと切り離すことで、直接データを触ることができなくなるので、入力データの誤入力判定や登録前の事前処理などを組み込むことが可能です。
Accessフォームのメリット
Accessフォームを使うことによるメリットは次のとおり。
Accessフォームのデメリット
Accessフォームを使用してみて私が感じたデメリットは、勝手にレコードが自動保存されてしまうことです。
Accessフォームの簡単な作成方法
Accessフォームの作成方法です。デザインや管理方法等にこだわりがない場合はデフォルトのフォームでいいと思います。
デザインを懲りたい場合や業務のやり方に合うよう自由に画面構成したい場合は、デザインフォームから作成することもできます。
簡単なフォーム作成
フォームは[作成]メニューの[フォーム]ボタンから作成します。連携させるテーブルを選択して、[フォーム]ボタンを押します。

これで簡単に単票フォームが作成できます。

帳票フォームやデータシートに変更するには、まずフォームの表示形式を[デザインビュー]に切り替えます。
[フォームレイアウトのデザイン]メニューの[表示]ボタンから切り替えができます。

表示形式は3つあり、それぞれの役割については次のとおり。
- フォームビュー
実際にデータを更新するときに使用するビューです。
- レイアウトビュー
フォームビューのようにデータの表示を見ながらデザインを微調整できます。
- デザインビュー
グリッド線を見ながらコントロール1つ1つを細かく設定できます。
デザインフォームで右クリックし、フォームのプロパティを開きます。
画面右側にプロパティ画面が表示されます。

[書式]タブの[既定のビュー]でフォームの種類を選択できます。

レコードの見方や追加方法等は、前述のフォームの種類で説明した通りです。
デザインを1から作成
好きなデザインで作りたいという場合には、フォームデザインからコントロールを追加していく方法でフォームを作成していきます。
今回は一例で、顧客リストから顧客名と電話番号一覧が表示されるフォームを作成します。
[フォームデザイン]をクリックします。まっさらなフォームが表示されます。

既定のビューには帳票フォームを指定しておきます。

連携するデータを指定します。[データ]タブで[レコードソース]に顧客リストを選択します。
これでこのフォームで顧客リスト内のデータが使用できるようになります。

フォーム上で右クリックし、[フォームヘッダー/フッター]をクリックします。

このような画面になります。

フォームヘッダー、詳細、フォームフッターの3つに画面が分かれます。
フォームフッターは今回は使いません。
詳細画面には、顧客リストから取得する顧客名と電話番号の一覧がリストで表示されるようにします。
[フォームデザイン]メニューから[テキストボックス]をクリックすると、テキストボックスウィザードが表示されます。ここは何もせずに、完了ボタンを押します。

テキストボックスについているラベルは不要なので、右クリックで削除しておきます。

テキストボックスの大きさを変えたり、プロパティで文字の位置やサイズを変えたりできます。

同じものをコピーでもう一つ作ります。

この2つのテキストボックスに、顧客名と電話番号が表示されるように設定します。
方法は簡単で、各テキストボックスを選択し、[データ]タブの[コントロールソース]でデータ名を指定するだけです。

同様に電話番号も設定します。
データを選択すると、テキストボックスに名称が入りました。

このままフォームビューにすると、1レコードが広く見た目が悪いです。

なので詳細画面の幅を狭めます。
フォームフッターを以下のように詳細画面ギリギリまで移動させます。フォームフッターの縁にカーソルを充てると矢印が出るので、それで縮めます。

そうすると、顧客名と電話番号の一覧がこのように表示されます。

一番下の行に値を入れると登録されてしまうので、できないようにテキストボックスに制御を入れていきます。
テキストボックスのプロパティから、[編集ロック]を[はい]にします。

電話番号のテキストボックスも同様に、[編集ロック]を[はい]に設定します。
そうするとテキストボックスが編集できなくなるため、データの変更も自動追加もされなくなります。
フォームヘッダーには、詳細画面で表示するリストのヘッダーを置きます。
先ほど作成したテキストボックスのすぐ上に、それぞれの項目名のラベルを置きます。

プロパティで背景色の変更をしたり、文字を太字にしたりしてデザインします。

こんな感じにできました。

ちょっと私はデザインセンスに難ありですが、ご自身のセンスでどうぞ。
まとめ
Accessのフォームについて、簡単にわかりやすくお伝えしました。
今回デザインを一から作成する方法では、フォームではデータの更新はできないように設定しました。その場合は別フォームでデータの更新や新規追加の画面を作成する必要があります。
VBAの知識も必要ですが、作成できればアクセスで管理システムを構築することができます。
セキュリティに厳しかったり、開発環境が整っていない場合には、Accessを使えば日常の業務を効率化することができますよ。


