Accessのテーブルのフィールドで[データ型]を[Yes/No型]にして、集計フォームでチェックボックスがオンの数を合計したい場合の方法です。
参考ここでは[ドキュメントウィンドウオプション]で[ウィンドウを重ねて表示する]を選択しています。[ウィンドウを重ねて表示する]と[タブ付きドキュメント]の違いについては、以下の記事で解説しています。
-
[タブ付きドキュメント]と[ウィンドウを重ねて表示する]の違い
Access2007以降、オブジェクトを表示すると、タブ付きウィンドウで表示されるようになっています。 昔からAccessを使用している方に ...
この記事の目次
テーブルの確認
テーブル[T_申込]のデザインビューです。
セミナーごとにフィールドを作成して、データ型は[Yes/No型]にしています。
データ型については、以下の記事で解説しています。
-
テーブル(フィールド)のデータ型の種類とフィールドプロパティ
文字とか数値といったデータの種類のことをデータ型と呼びます。 Accessでは、フィールドごとにデータ型が決まっていて、同じデータ型のデータ ...
申込フォームの作成
テーブル[T_申込]を基に作成したフォームの新規データ入力は下のようになっています。
ここでは、フォームの名前は[F_申込]にしています。
参考テーブルのデータ型で[Yes/No型]を選択すると、フォームではチェックボックスになります。
集計フォームの作成
このチェックボックスがオンの数を集計して表示するには、[T_申込]テーブルを基にフォームを作成します。
ここでは、[F_集計]というフォームを作成しています。
[フォーム]プロパティのレコードソースは、[T_申込]となっています。
フォームヘッダーには、ラベルで[セミナー集計]と入力しています。
参考キーボードから[F4]キーを押すと、プロパティを表示できます。
非連結のテキストボックスを作成
非連結のテキストボックスを作成します。
[非連結]とはテーブルやクエリのデータがもとになっていないコントロールのことを指します。
[デザイン]タブの[コントロール]グループの[テキストボックス]クリックして挿入します。
そして、以下のようにレイアウトします。
[人]はラベルで挿入します。
テキストボックスウィザードが表示されたら[キャンセル]ボタンをクリックして閉じます。
テキストボックスのコントロールソースへ関数を入力
テキストボックスのプロパティを表示します。
[データ]タブの[コントロールソース]に以下のように入力します。
=Sum(IIf([セミナー1]=Yes,1,0))
同じように、他の2つのテキストボックスのコントロールソースにも入力します。
IIF関数については、Microsoftの以下の記事が参考になります。
IIf 関数 - Access(Microsoft)
フォームビューで確認
フォームビューに切り替えて確認すると、下のようになります。
コントロールのフォントなどは、任意で変更してください。
参考フォームのデザインビューから、フォームビューに切り替えるショートカットキーは[F5]キーです。
集計データを更新する[更新]ボタンを作成
フォーム[F_申込]に新しいデータが入力されたら、集計データを更新したいので[更新]ボタンを作成します。
[デザイン]タブの[コントロール]グループにある[ボタン]をクリックして、フォームヘッダーに挿入します。
テキストボックスウィザードが表示されたら[キャンセル]ボタンをクリックして閉じます。
埋め込みマクロ(マクロビルダー)とイベントプロシージャ(コードビルダー)で設定する方法を紹介します。
どちらで設定しても構いません。
[コードビルダー]で設定しても、[マクロビルダー]で設定しても動作は同じです。
マクロビルダーで設定する場合
[ビルダーの選択]ダイアログボックスで[マクロビルダー]を選択した場合は、[再クエリ]を選択します。
コマンドボタンのプロパティで[イベント]タブの[クリック時]の[ビルダー選択]ボタン[…]をクリックして、[ビルダーの選択]ダイアログボックスで[マクロビルダー]を選択して[OK]ボタンをクリックします。
[マクロウィンドウ]が表示されます。
[新しいアクションの追加]の▼ボタンをクリックして、[再クエリ]を選択します。
マクロアクションは、[アクションカタログ]から選択してマクロウィンドウへ追加する方法もあります。
以下のようになります。コントロール名は空白のままでOKです。
[閉じる]ボタンをクリックして閉じます。
[マクロに対して行った変更を保存して、プロパティを更新しますか?]のメッセージウィンドウが表示されますので、[はい]ボタンをクリックします。
プロパティの[イベント]タブのクリック時には、[埋め込みマクロ]と表示されます。
参考[埋め込みマクロ]と、[独立マクロ]については以下で解説しています。
コードビルダーで設定する場合
コマンドボタンのプロパティを表示して、[イベント]タブのクリック時の[ビルダー選択]ボタン[…]をクリックします。
[ビルダーの選択]ダイアログボックスが表示されたら、[コードビルダー]を選択して[OK]ボタンをクリックします。
そして、以下のように[クリック時]イベントのイベントプロシージャに書き込みます。
DoCmd.Requery
常にコードビルダーで設定するには
常にコードビルダーで設定したいのであれば、[Accessのオプション]ダイアログボックスで設定できます。
[ファイル]タブをクリックしてBackstageビューを表示して、[オプション]をクリックします。
[オプション]ダイアログボックスは、アクセスキーを使って[Alt]→[F]→[T]の順に押すと表示できます。これは、Word、PowerPointなどでも使用できます。
[Accessのオプション]ダイアログボックスの[オブジェクトデザイナー]にある[常にイベントプロシージャを使用する]のチェックボックスをオンにして、[OK]ボタンをクリックします。
[ビルダーの選択]ダイアログボックスが表示されず、すぐにVBEウィンドウが表示されるので効率的です。
参考[マクロビルダー]と[コードビルダー]の相違点などは以下の記事で解説しています。
-
マクロアクション(マクロビルダー)とVBA(コードビルダー)
Accessでは、マクロアクション(マクロの実行アクション)やVBA(Visual Basic for Applications)を使って一 ...
以下の記事は、[Yes/No型]で作成したチェックボックスに関する記事です。
-
Yes/No型をチェックボックスではなく文字列で表示するには
Accessのテーブルでフィールドのデータ型を[Yes/No型]にすると、データシートビューではチェックボックスになります。 テーブルや、フ ...