AccessのYes/No型フィールド・チェックボックス・オプショングループで選択入力を設計する|フォーム制御・集計クエリ連携・実務パターンとMOS試験対策

「Accessテーブルで『対応済み』『未対応』などのフラグ管理をどのデータ型で設計すればいいかわからない」「フォームにチェックボックスを置きたいが、Yes/No型フィールドとどう連携させるのか理解できていない」「アンケートの回答を複数の選択肢から1つだけ選ばせる場合、コンボボックスとオプショングループのどちらを使えばいいのか」——こうした疑問を持つ方は多いです。

AccessにはYes/No型という真偽値専用のデータ型と、それを操作するためのチェックボックスオプショングループという2種類のフォームコントロールがあります。Yes/No型はデータシートビューで自動的にチェックボックスとして表示され、True(-1)/False(0)を直感的に入力できます。オプショングループはラジオボタンのように選択肢が複数ある場合に1つだけ選ばせる仕組みで、数値型フィールドと連携して動作します。

本記事では、Yes/No型フィールドの基本とテーブル設計・フォームへのチェックボックス配置・オプショングループの作成・クエリでの集計方法・実務パターン・よくあるエラー対処、MOS Access試験の頻出出題範囲と攻略法まで体系的に解説します。

AccessのYes/No型フィールドの仕組み:True(-1)とFalse(0)の内部値とチェックボックス表示・書式3種類の図解
目次

Yes/No型フィールドとは何か

Access のテーブルには複数のデータ型が用意されていますが、Yes/No型は「2値しか取らないフィールド」専用のデータ型です。SQL上では「ビット型」に相当し、内部的に True(-1) または False(0) の整数値で保存されます。

Accessのデータシートビューでは、Yes/No型フィールドは自動的にチェックボックスとして表示されます。ユーザーはチェックボックスをクリックするだけで値を切り替えられるため、テキストを入力する手間がありません。フォームでも同様で、Yes/No型フィールドをフォームに配置すると既定でチェックボックスコントロールが生成されます。

Yes/No型が適した場面

  • 「対応済み/未対応」「出席/欠席」「有効/無効」など2択の状態を管理するとき
  • 「メルマガ受信可」「承認フラグ」「キャンセル済み」など処理フラグとして使うとき
  • 「支払い完了」「在庫あり」など業務ステータスを1ビットで表現したいとき
  • 集計クエリで「対応済み件数」「承認割合」などをカウント・パーセント表示するとき

Yes/No型フィールドの作成手順

  1. テーブルをデザインビューで開く(または新規作成する)
  2. 「フィールド名」列に名前を入力する(例:「対応済み」「出席フラグ」)
  3. 「データ型」列のドロップダウンから 「Yes/No型」 を選択する
  4. フィールドプロパティの「書式」欄に表示したい形式を選択する
  5. テーブルを保存してデータシートビューに切り替えると、フィールドがチェックボックスとして表示される

フィールドプロパティの「書式」で設定できる主な選択肢は3種類です。

書式設定True(チェック済み)の表示False(未チェック)の表示用途
Yes/No(既定)YesNo英語環境向け一般設定
True/FalseTrueFalseプログラム的な識別に適する
On/OffOnOff機能・スイッチ系のフラグ向け

書式設定はデータシートビューでテキストとして値を入力するときに影響します。フォームのチェックボックスコントロールとして配置する場合は、チェックのオン・オフで直感的に操作できるため書式の見た目をあまり意識しなくても問題ありません。

テーブルのデータシートビューでのチェックボックス表示

Yes/No型フィールドを作成してデータシートビューを開くと、該当フィールドのセルにチェックボックスが自動で表示されます。チェックを入れると True(-1) が、チェックなしだと False(0) が内部値として保存されます。

データシートビューで既定値(Default Value)を設定しておくと、新しいレコードを追加したときにチェックボックスが最初からオンまたはオフになった状態で始まります。設定場所はデザインビューのフィールドプロパティ「既定値」欄で、Yes(チェック済み)または No(未チェック)を入力します。

実務では「対応済みフラグ」は既定値を「No」にして「対応したらチェックを入れる」運用が一般的です。逆に「メルマガ受信可」のような同意系フラグは既定値を「No」にして入力者が明示的にチェックを入れる設計にすることで、同意未確認のまま登録されるリスクを防げます。

フォームのチェックボックスコントロール

フォームウィザードやフォームデザインビューでYes/No型フィールドをフォームに追加すると、チェックボックスコントロールが自動で生成されます。ユーザーはフォーム上でチェックのオン・オフを切り替えるだけで値を入力できます。

チェックボックスを手動で配置する手順

  1. フォームをデザインビューで開く
  2. 「デザイン」タブ→「コントロール」グループの中のチェックボックスアイコン(□にチェックの記号)をクリックする
  3. フォームの詳細セクションでドラッグして配置する
  4. プロパティシートの「データ」タブで「コントロールソース」に Yes/No型フィールド名を設定する
  5. 「書式」タブで「標題」を「対応済み」など分かりやすいラベルに変更する

チェックボックスの主要プロパティ

プロパティ名タブ設定内容
コントロールソースデータバインドするYes/No型フィールド名(例:「対応済み」)
既定値データ新規レコード作成時のデフォルト(0 または -1)
使用可能データ「はい」で操作可・「いいえ」で読み取り専用
ロックデータ「はい」でチェック変更を禁止する
標題書式チェックボックスの右に表示されるラベルテキスト
幅・高さ書式コントロールのサイズ(cm単位)
前景色書式チェックボックス周辺の文字色

クリックイベントで他コントロールを制御する

チェックボックスの「クリック時」イベントにマクロやVBAコードを設定すると、チェックの状態に連動して他のコントロールの表示・非表示や使用可否を切り替えることができます。

例えば「キャンセル済み」チェックボックスをオンにしたら「キャンセル理由」テキストボックスが有効になり、オフにしたら入力不可になるという制御がよく使われます。マクロで実装する場合は「コントロールの有効化」アクションを使い、条件式に [キャンセル済み]=True を設定します。

Accessオプショングループの構造:選択したオプション値(整数)が数値型フィールドに保存される仕組みの図解

オプショングループとは何か

オプショングループは複数の選択肢から1つだけ選ばせるラジオボタン型のコントロールをまとめたグループです。内部的には各選択肢に対応した「オプションボタン」「チェックボックス」「トグルボタン」のいずれかが配置され、グループ全体に1つの数値型フィールドが対応します。

ユーザーが選択肢を1つ選ぶと、その選択肢に割り当てた整数値がフィールドに保存されます。たとえば「優先度」フィールドに1・2・3を割り当てたオプショングループを配置すれば、「高(1)」「中(2)」「低(3)」のいずれかをクリックするだけで値が入力されます。

オプショングループが有効な場面

  • 選択肢の数が2~5個程度で、画面スペースに収まる場合(6個以上はコンボボックス推奨)
  • 選択肢の意味を画面上に常時表示したい場合(コンボボックスと異なり全選択肢が常時見える)
  • 「ステータス:新規 / 処理中 / 完了 / キャンセル」のような有限の区分を入力させる場合
  • 「評価:1星 / 2星 / 3星 / 4星 / 5星」のような段階評価を直感的に選ばせたい場合
  • MOS Access試験のフォームコントロール操作を体系的に習得したい場合

PR

できるAccess 2024 Copilot対応 Access 2024/2021 & Microsoft365版(きたみあきこ/できるシリーズ)

テーブル・クエリ・フォーム・レポートの基本操作を手順つきで解説する定番シリーズ。実務での使い方を確認したいときに向いています。

オプショングループウィザードで作成する手順

Accessにはオプショングループを対話形式で作成するウィザードが用意されています。ウィザードを使うと選択肢の名前・各選択肢の値・バインドするフィールドを手順に従って設定できます。

  1. フォームをデザインビューで開く
  2. 「デザイン」タブ→「コントロール」グループの「コントロールウィザードを使用する」ボタンがオン(強調表示)になっていることを確認する
  3. 「オプショングループ」コントロールアイコン(枠にラジオボタンが並んだ記号)をクリックする
  4. フォームの詳細セクションでドラッグしてグループの外枠を配置する
  5. 手順1:ラベル名の入力 ― 各選択肢のテキストを入力する(例:「高」「中」「低」)。Enterを押して次の行に進む
  6. 手順2:既定の選択肢 ― 最初から選択された状態にしたい選択肢を指定する(例:「中」)または「既定値を設定しない」を選ぶ
  7. 手順3:各選択肢に割り当てる値 ― 各ラベル名に対応する整数値を入力する(例:高=1、中=2、低=3)。既定では1・2・3が自動入力される
  8. 手順4:値の保存先 ― 「次のフィールドに値を保存する」を選択し、対応する数値型フィールド名(例:「優先度」)を選択する
  9. 手順5:コントロールの種類 ― 「オプションボタン」「チェックボックス」「トグルボタン」のどれを使うかと、外枠の書式(エッチング・影付き・へこみなど)を選択する
  10. 手順6:グループの標題 ― オプショングループの見出しラベルを入力する(例:「優先度」)
  11. 「完了」をクリックするとオプショングループがフォームに配置される

ウィザードで「オプションボタン」を選択すると一般的なラジオボタンの見た目になります。「チェックボックス」を選択するとチェックボックスが複数並んだ外観になりますが、グループ内では1つしかチェックを入れられないため、視覚的にはオプションボタンに近い動作をします。

オプショングループのデザインビュー手動設定

ウィザードを使わずにデザインビューで手動設定する場合は、以下のプロパティを設定します。

設定対象プロパティ名設定内容
グループ枠全体コントロールソース対応する数値型フィールド名(例:「優先度」)
グループ枠全体標題グループの見出しテキスト(例:「優先度を選択」)
グループ枠全体既定値最初から選択されるオプション値(整数)
個別オプションボタンオプション値そのボタンが選択されたときに保存される整数(例:1・2・3)

個別のオプションボタンは「オプション値」プロパティに整数を設定します。ユーザーがそのボタンを選択すると「オプション値」に設定した整数がグループのコントロールソースフィールドに保存される仕組みです。グループの「既定値」プロパティに整数を入れると、新規レコード追加時に対応するオプションボタンが最初から選択された状態になります。

Yes/No型フィールドの集計クエリ:True=-1のため-Sumで正の件数を得る式とクエリ条件行の書き方の図解

Yes/No型フィールドをクエリで集計する

Yes/No型フィールドは True=-1、False=0 という整数値で保存されるため、クエリの集計で活用できます。ただしExcelのCOUNTIF関数と違い、Accessでは少し独自の書式が必要です。

True件数をカウントする方法

Yes/No型フィールドで True(チェック済み)のレコード数をカウントするには、Sum関数を使った方法が最も汎用的です。

例:対応済み件数: -Sum([対応済み])

True は内部値が -1 なので Sum をとると負の値になります。先頭に - をつけることで正の件数に変換できます。あるいは IIf 関数を使って True の場合だけカウントする方法もあります。

例:対応済み件数: Sum(IIf([対応済み]=True,1,0))

割合(パーセント)を求める方法

「対応済み率」のような割合を計算するには以下の式を使います。

例:対応済み率: -Sum([対応済み]) / Count(*) * 100

フィールドのプロパティで書式を「パーセント」に設定するか、上式の末尾に * 100 を加えて数値表示にします。分母がゼロになるケースを防ぐには IIf関数で IIf(Count(*)=0, 0, -Sum([対応済み]) / Count(*) * 100) のように保護します。

WHERE句でYes/No型を条件に使う

選択クエリやアクションクエリの条件行でYes/No型フィールドを絞り込む場合は、デザインビューの条件行に以下のように入力します。

絞り込み内容条件行の記述補足
チェック済み(True)のみTrue または Yes または -13種類どれでも同じ動作
未チェック(False)のみFalse または No または 0NULL は含まない
True以外(FalseとNull含む)Not TrueNULL も対象に含める
AccessのYes/No型フィールドとオプショングループの実務活用パターン5選の比較図解

実務での活用パターン5選

パターン1:タスク管理の「対応済みフラグ」

タスク管理テーブルに「対応済み」Yes/No型フィールドを追加し、フォームのチェックボックスで完了入力、クエリで「未対応タスク件数」をカウントしてフォームのテキストボックスに表示するパターンです。DCount関数を使えば DCount("*","タスク管理テーブル","[対応済み]=False") でリアルタイムに未対応件数を表示できます。

パターン2:受講者名簿の「出席チェック」

受講者テーブルに「出席」Yes/No型フィールドを追加し、データシートビューで担当者が受講者一覧を見ながらチェックを入れていく運用です。集計クエリで出席率を自動計算してレポートに印刷する設計にすると、出席簿の集計業務が自動化されます。

パターン3:顧客マスタの「メルマガ受信可」

顧客マスタに「メルマガ受信可」Yes/No型フィールドを追加し、入力フォームにチェックボックスを配置します。クエリで [メルマガ受信可]=True を条件にして宛先リストをExcelにエクスポートすれば、メルマガ配信対象者の抽出が1クエリで完了します。

パターン4:案件の「優先度選択」にオプショングループ

案件テーブルに数値型の「優先度」フィールドを追加し、フォームにオプショングループで「高(1)/ 中(2)/ 低(3)」のラジオボタンを配置します。クエリのグループ化で優先度ごとの件数集計、レポートで優先度別の案件一覧を出力する運用が実現します。

パターン5:入荷チェックリストの条件付き書式連携

在庫管理テーブルに「入荷確認済み」Yes/No型フィールドを追加し、フォームに条件付き書式を設定します。「入荷確認済み」がTrueのレコードの背景色を緑にすることで、未確認アイテムを視覚的にひと目で識別できます。条件付き書式の式として [入荷確認済み]=True を設定するのが基本パターンです。

PR

MOS Access 365&2019 Expert 対策テキスト&問題集(よくわかるマスター/富士通ラーニングメディア)

MOS Access試験の出題範囲を体系的に演習できる公式教材シリーズ。テーブル・クエリ・フォーム・レポートの操作を試験形式で確認できます。

よくあるエラーと対処法

エラー1:Yes/No型フィールドの集計で値がマイナスになる

原因:AccessのYes/No型はTrue=-1で保存されます。Sum([対応済み]) のままだと件数が負の数になります。

対処:式の先頭に - を追加して -Sum([対応済み]) とするか、IIf関数で Sum(IIf([対応済み]=True,1,0)) に書き換えます。

エラー2:クエリ条件でYes/No型を「1」で絞ると0件になる

原因:AccessのYes/No型のTrue値は -1 であり、1 とは一致しません。SQLのBIT型(0/1)とは内部値が異なります。

対処:条件を TrueYes-1 のいずれかに書き換えます。デザインビューの条件行で True または Yes と入力するのが最も安全です。

エラー3:オプショングループで選択してもフィールドに値が保存されない

原因:グループ枠コントロールの「コントロールソース」プロパティが未設定または空の状態になっています。オプション値は正しく設定されていても、保存先フィールドが指定されていないため値が保存されません。

対処:フォームのデザインビューでオプショングループの枠(外側のフレーム)をクリックして選択し、プロパティシートの「データ」タブで「コントロールソース」に正しいフィールド名を設定します。個別のオプションボタンではなくグループ枠全体を選択することがポイントです。

エラー4:オプショングループに選択肢を追加したら値が重複した

原因:ウィザードで作成後に手動でオプションボタンを追加したとき、新たに追加したボタンの「オプション値」が既存のボタンと同じ値になっている場合があります。

対処:追加したオプションボタンを選択し、プロパティシートの「データ」タブで「オプション値」を他のボタンと重複しない整数に変更します。各ボタンのオプション値はグループ内で一意でなければなりません。

エラー5:チェックボックスが読み取り専用で変更できない

原因:チェックボックスコントロールの「使用可能」プロパティが「いいえ」に設定されているか、「ロック」プロパティが「はい」になっているため操作できません。またはフォーム自体が「編集可能」「いいえ」になっている場合もあります。

対処:プロパティシートの「データ」タブで「使用可能」を「はい」、「ロック」を「いいえ」に変更します。フォームのプロパティ「編集可能」が「いいえ」になっている場合も「はい」に変更します。

MOS Access試験の頻出パターンと対策

MOS Access試験(2019・2016対応)では、Yes/No型フィールドとフォームコントロールに関する出題が複数パターンで登場します。

頻出パターン1:テーブルへのYes/No型フィールドの追加

「テーブルに新しいフィールドを追加し、データ型をYes/No型に設定する」という問題が出題されます。デザインビューでのデータ型選択操作と、フィールドプロパティの「書式」設定(Yes/No・True/False・On/Off)の違いを押さえておきましょう。フィールドの「既定値」プロパティに Yes や No を設定する操作も合わせて練習してください。

頻出パターン2:フォームへのチェックボックス配置

「フォームにチェックボックスを追加し、指定のフィールドにバインドする」という問題が出題されます。チェックボックスアイコンの場所(「デザイン」タブ→コントロールグループ)、配置手順、プロパティシートの「コントロールソース」設定を繰り返し練習してください。

頻出パターン3:オプショングループウィザードの操作

「フォームにオプショングループを作成し、3つの選択肢と各値を設定する」という問題が出題されます。ウィザードの各ステップ(ラベル名入力→既定選択肢→値設定→保存先フィールド→コントロール種類→グループ標題)の順序を正確に覚えておくことが重要です。

頻出パターン4:Yes/No型フィールドのクエリ条件

「クエリで対応済みのレコードのみを抽出する条件を設定する」という問題が出題されます。Yes/No型フィールドの条件行に「True」または「Yes」を記述する操作を確認しておいてください。

試験出題項目操作場所覚えるポイント
Yes/No型フィールドの追加テーブルデザインビューデータ型ドロップダウンから「Yes/No型」を選択
書式の設定フィールドプロパティ「書式」Yes/No・True/False・On/Offの3種
チェックボックス配置フォームデザインビューコントロールグループのチェックボックスアイコン
コントロールソース設定プロパティシート「データ」タブYes/No型フィールド名を選択
オプショングループ作成フォームデザインビュー→ウィザード6ステップの順序と各入力内容
クエリ条件(True/False)クエリデザインビュー・条件行True または Yes で絞り込む

MOS試験対策の効果的な練習方法

Yes/No型は実際にテーブルを作成してデータシートビューでチェックボックスが表示される様子を確認するのが最初のステップです。続いてフォームウィザードでYes/No型フィールドを含むフォームを作成し、自動生成されるチェックボックスのプロパティを確認してください。

オプショングループはウィザードを最初から最後まで通して完了させる練習を3回繰り返すと、試験本番で手が動くようになります。ウィザード完了後にデザインビューで各オプションボタンの「オプション値」プロパティを確認する習慣をつけておくと、問題設定の変更にも迷わず対応できます。

まとめ

AccessのYes/No型フィールド・チェックボックス・オプショングループは、2値または少数の選択肢を扱うデータ設計の基本ツールです。

  • Yes/No型フィールド:True(-1)/False(0)で保存される2値専用データ型。データシートビューで自動的にチェックボックス表示になる
  • フォームのチェックボックス:「コントロールソース」にYes/No型フィールドをバインドして配置。「使用可能」「ロック」プロパティで操作制御ができる
  • クエリ集計:True件数は -Sum([フィールド名]) で取得。条件行では True または Yes と記述する
  • オプショングループ:選択肢2~5個で1択の場合に有効。ウィザード6ステップで作成し、各オプションボタンに整数値を割り当てて数値型フィールドに保存する
  • MOS試験:Yes/No型の追加・書式設定・チェックボックス配置・オプショングループウィザード・クエリ条件の5点が頻出

次のステップとして、実際のAccessテーブルにYes/No型フィールドを追加してデータシートビューでチェックボックスが機能することを確認してください。続いてフォームウィザードで対象フィールドを含むフォームを作成し、チェックボックスのプロパティを変更しながら動作を試してみましょう。MOS Access試験を目指す方は、オプショングループウィザードを繰り返し完走して全ステップの入力内容を手が覚えるまで練習することが合格への近道です。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次