Accessのフォームに重複しないデータの個数を表示する方法を紹介します。
下のようにフォームヘッダーのテキストボックスに部署数の重複しない個数と、現在表示されているレコード件数を表示します。
分割フォームでフィルターの抽出件数を表示できるのは便利です。
テーブルの確認
フォームのもとになるテーブルは下のようになっています。
参考ここでは[ドキュメントウィンドウオプション]で[ウィンドウを重ねて表示する]を選択しています。[ウィンドウを重ねて表示する]と[タブ付きドキュメント]の違いについては、以下の記事で解説しています。
-
[タブ付きドキュメント]と[ウィンドウを重ねて表示する]の違い
Access2007以降、オブジェクトを表示すると、タブ付きウィンドウで表示されるようになっています。 昔からAccessを使用している方に ...
重複しないレコードを求めるクエリの作成
まず、テーブルを基にクエリ[Q_count]を作成します。
ここでは、[都道府県]の数を求めるクエリを作成します。
個数を求めたい[都道府県]フィールドをデザイングリッドのフィールド行に表示します。
そして、クエリプロパティを開いて、[固定の値]を[はい]に変更します。
クエリを保存します。
クエリプロパティは、プロパティシートを表示しておき、クエリの何もないところでダブルクリックすると表示できます。
クエリを実行すると、以下のようになります。
参考重複しないレコードをクエリのプロパティ[固有の値]で求める方法は、以下の記事でも解説しています。
-
2つのコンボボックスに重複しないデータを表示してレコードを抽出
Accessでコンボボックスを使用してレコードを抽出する方法はいくつかありますが、テーブル内の重複しないデータをコンボボックスに表示して作成 ...
クエリでグループ化して、重複しないレコードを抽出することもできます。
-
グループ化で重複レコードを削除したテーブルを作成
Accessで、1つのテーブルで重複したレコードを削除してマスターテーブルを作成する方法です。 クエリでグループ化を設定して重複レコードがな ...
レコード数をテキストボックスに自動表示
テーブルを基にフォームを作成します。
下は分割フォームです。分割フォームについては、以下の記事で解説しています。
-
分割フォーム(単票フォームとデータシートを同時に表示)の作成と使い方
Accessでは、画面を2つに分け[単票フォーム]と[データシート]を同時に表示できる[分割フォーム]というのがあります。Access200 ...
コントロールから[テキストボックス]を選択して、フォームヘッダーへ挿入します。
もし、[テキストボックスウィザード]が表示されたら、[キャンセル]ボタンを押して閉じてください。
非連結のテキストボックスが表示されます。
参考フォームヘッダーが表示されていない場合は、ショートカットメニューから表示してください。
-
フォームヘッダー/フッターの表示(タイトル・ロゴ・日付と時刻の挿入)
Access2013のフォームで[フォームのヘッダー/フッター]を表示する方法です。 フォームをデザインビューで開くと、以下のようになってい ...
テキストボックスを挿入すると、既定ではラベルも一緒に挿入されます。ラベルを挿入したくない場合は、[Ctrl]キーを押しながらドラッグしてください。
-
テキストボックス作成時(フィールドの追加時)にラベルを挿入したくない
Accessのフォームやレポートのデザインビューでテキストボックスを作成すると、自動的にラベルも挿入されてしまいます。 これは、意外と面倒に ...
テーブルの全レコード数を表示
フォームヘッダーに非連結のテキストボックスを作成し、そのテキストボックスのプロパティを開き、[コントロールソース]に以下のように入力します。
これで、テーブル[T_会員]の全レコード数を表示できます。
=Dcount("*","T_会員")
参考Dcountについての詳細は、DCount 関数 - Microsoft サポート(Microsoft)を参照してください。
クエリで求めたレコード数を表示
2つ目の非連結のテキストボックスを作成して、今度は、[=Dcount("*","Q_count")]とします。
=Dcount("*","Q_count")
これでクエリ[Q_count]の個数を表示することができます。
フォームビューに切り替えて確認すると、以下のように表示されます。
テーブルのレコード数が変わると、2つのテキストボックスの数値は自動で更新されます。
参考デザインビューからフォームビューに切り替えるショートカットキーは[F5]キーです。
抽出されたレコード件数を自動表示
分割フォームでは、データシートビューのフィルターボタンでデータを抽出することも多いと思います。
そのき、フォームのコントロールにフィルターで抽出された件数を表示したい場合は、非連結のテキストボックスのプロパティを開き、コントロールソースに以下を入力します。
[Count(*)]でレコード数が表示されます。
Count 関数 - Microsoft サポート(Microsoft)
=Count(*)
フォームに切り替えると、フィルターをかけていないので、すべてのレコード件数が表示されます。
データシートビューのフィルターボタンでフィルターを実行すると、抽出されたレコード数が表示されます。
以下の画像では、[コース]フィールドで[VIP]のレコードを抽出しています。
テーブルのレコード数を表示している[会員数]は不要かもしれませんが、常に表示しておきたい場合などはいいと思います。
参考Count関数は、以下の記事でも使用しています。
-
フィールドの同じ値の数をカウントするにはクエリでグループ化
クエリのグループ化は、グループごとに集計できる便利な機能です。 たとえば、1つのフィールド内の同じデータをグループ化して、合計やカウント、平 ...
テキストボックスや、コンボボックスでレコードを抽出する方法は、以下の記事で解説しています。
-
テキストボックスでレコード抽出(コードビルダーを起動して設定)
Accessのフォームで検索用のテキストボックスを作成して、そのテキストボックスに入力した文字列の部分一致でレコードを抽出する方法を紹介しま ...
-
フォームのコンボボックスの値でレコードを抽出
フォームにコンボボックスを作成して、そのリストから選択して一致するレコードを抽出できるようにします。 ウィザードを使い、コンボボックスの値は ...
以下は、DCount関連の記事です。
-
レコード検索時に該当するレコードがない場合はメッセージを表示する
フォームに検索ボックス(テキストボックス)を設置して、管理番号を入力したら該当のレコードを抽出する仕組みを作ります。 その時、検索ボックスに ...
-
重複データが入力されたらオリジナルのメッセージを表示する
Accessのフォームで受付番号を入力するように作成しています。 受付番号を入力したときに、既に入力済みの番号であればメッセージウィンドウを ...
-
テーブル/クエリにレコードが1件もない時にメッセージを表示する
Accessのテーブル/クエリでレコードが1件もない時、そのテーブルを基にして作成したフォームを開こうとする場合は、[データがありません]と ...
-
0を除く平均値を求めるには(Sum関数とDCount関数)
Accessでアンケート集計を作成することになりました。 各質問に[0から5]の5段階の評価をつけもらうことにしました。 ただし、[0]は、 ...
-
オートナンバー型を使わずに[数値型]を使って自動的に連番を入力する
Accessのテーブルでコードなどに、オートナンバー型を使っているとなにかと不便を感じることもあります。 番号に欠番が生じた場合、再度、番号 ...