Microsoft Accessでは、フォームを使って直感的にデータ入力ができます。
さらに、選択内容に応じて「次に選べる項目を自動で切り替える」ことができれば、
入力ミスを防ぎ、業務効率を大きく向上させることが可能です。
本記事では、Accessのフォームで
「収支」を選ぶと「収支カテゴリ」が自動で切り替わる仕組みを例に、
コンボボックス・リストボックスを使った連動設定方法をわかりやすく解説します。
- Accessのフォームで選択肢を連動させる仕組み
- コンボボックス・リストボックスを使った具体的な設定方法
- 選択肢が表示されない時の原因と対処法(Requery)
Accessフォームで選択肢を連動させる仕組みとは?
Accessフォームの選択肢連動とは、ある項目の選択内容に応じて、別の項目の選択肢を動的に絞り込む仕組みです。
例えば、以下のようなケースで活用できます。
・「部署」を選ぶと、「担当者」が自動で絞り込まれる
・「申請種別」を選ぶと、「申請内容」が切り替わる
・「収支」を選ぶと、「収支カテゴリ」が変わる
この仕組みを使うことで、
・入力ミスの防止
・入力時間の短縮
・ユーザーに優しいフォーム設計
が実現できます。
フォーム入力用のテーブルを作成する
まずは、フォームで表示・入力するためのテーブルを作成します。
今回は家計簿データを入力するテーブルを例に進めていきます。
作成するテーブルの項目例・イメージ
今回作成するテーブルの項目例・イメージは以下の通りです。
■作成するテーブルの項目例
・日付
・収支(収入/支出)
・収支カテゴリ(基本収入/臨時収入/食費/水道光熱費/生活用品費)
・金額
最終的には、
「収入」を選択した場合、「基本収入」もしくは「臨時収入」を表示
「支出」を選択した場合、「食費」、「水道光熱費」もしくは「生活用品費」を表示
するように設定していきます。

フォームのイメージは以下の通りです。

テーブル作成手順
テーブルの作成手順は以下の通りです。
1. 「作成」タブより、「テーブルデザイン」を選択する

2. テーブルのフィールド名、データ型を設定する
※今回は冒頭のフォームで表示した項目を設定。

3. テーブルに名前をつけて保存する
※今回は「家計簿データ」という名前で保存。

これで、テーブル作成が完了しました。
Accessでフォームを作成する手順
次に、作成したテーブルに対応するフォームを作成します。
1. 「作成」タブより、「フォームウィザード」を選択する

2. 「フォームウィザード」で「>>」→「次へ」を選択する
※「>>」を選択することで、フィールドを全て選択できます。

3. 今回は「単票形式」にチェックを入れ、「次へ」を選択する

4. 「フォームを開いてデータを入力する」にチェックを入れ、「完了」を選択する

無事にフォームを作ることができました!

選択肢を連動させるためのテーブルを作成する
今度は選択した項目に連動させるためのテーブルを作成します。
冒頭で記載した、以下の内容を反映させるためのテーブルとなります。
■「収支」と「収支カテゴリ」の対応例
・「収入」:「基本収入」もしくは「臨時収入」を表示
・「支出」:「食費」、「水道光熱費」もしくは「生活用品費」を表示
冒頭で紹介したテーブル作成と同じ流れで、新しいテーブルを作成します。
今回は「収支内訳」というテーブルを作成し、以下のように入力します。

※冒頭のテーブル作成と流れは一緒になりますので、そちらをご参照ください。
Accessフォームで「収支」を選択できるようにする
テーブルを作成したら、今度はそのテーブルと項目が連動するように設定していきます。
まずは「収支」項目で、「収入」「支出」が選択できるように設定していきます。
設定手順(リストボックス)
1. 「家計簿データ」フォームの「デザインビュー」で、「収支」部分を右クリック

2. 「コントロールの種類の変更」から「リストボックス」を選択

3. 「プロパティシート」で以下のように設定
・「値集合ソース」:「”収入”;”支出”」と入力
・「値集合タイプ」:「値リスト」を選択

これで、「収入」「支出」を選択できるようになりました。

Accessフォームで「収支カテゴリ」を連動表示させる
次に「収支」の選択内容に応じて、「収支カテゴリ」を自動で切り替える設定を行います。
コンボボックスの設定手順
1. 「家計簿データ」フォームの「デザインビュー」で、「収支カテゴリ」部分を右クリック

2. 「コントロールの種類の変更」から「コンボボックス」を選択

3. 「プロパティシート」で、「値集合ソース」部分に以下を入力
SELECT DISTINCT 収支内訳.収支カテゴリ, 収支内訳.収支 FROM 収支内訳, 家計簿データ WHERE (((収支内訳.収支)=[Forms]![家計簿データ]![収支])); 
これで「収入」を選んだ時、「基本収入」か「臨時収入」を選択することができるようになります。

収支を切り替えてもカテゴリが表示されない原因と対処法
これで無事完成!かと思いきや、同じように「支出」を選ぶと・・・、あれ?「収支カテゴリ」が出てこない・・・という状況になってしまいます。
これは、コンボボックスの内容が自動で再読み込みされていないことが原因です。
解約策:Requeryを実行する
コンボボックスの内容を自動で再読み込みするには、「Requery」を実行する必要があります。
以下工程を追加して、ちゃんと適応した「収支カテゴリ」が表示されるように設定します。
1. 「家計簿データ」フォームにある「収支カテゴリ」の「プロパティシート」を表示

2. 「フォーカス取得後」の「・・・」を選択

3. 「ビルダーの選択」より「コードビルダー」を選択し、「OK」を選択

4. VBAエディタが表示されるので、以下を記述
Me.収支カテゴリ.Requery
これで、収支を切り替えた際に、対応する収支カテゴリが正しく表示されました。

フォームから入力したデータをテーブルに反映する
では実際にフォームから全項目を入力し、Enterキーを押してみましょう。
すると、無事に入力内容がテーブルに保存されました。

フォームとテーブルが正しく連動していれば、データは自動的に反映されます。
まとめ|Accessフォーム連動で入力ミスを防ぎ業務効率化
アクセスのフォームで選択肢を連動させることで、入力作業を効率化し、ミスを大幅に減らすことができます。
特に、
・コンボボックス
・リストボックス
・Requery
この3点を理解しておくと、Accessフォーム設計の幅が一気に広がります。
ぜひ日々の業務改善に活用してみてください。
最後まで読んでいただき、ありがとうございました。



コメント