Accessのテーブル/クエリでレコードが1件もない時、そのテーブルを基にして作成したフォームを開こうとする場合は、[データがありません]というメッセージウィンドウを表示する方法です。
以下の例では、[生産停止商品]ボタンをクリックしたときに、メッセージウィンドウを表示しています。
![[データがありません]のメッセージボックス](https://hamachan.info/WordPress2019/wp-content/uploads/2017/01/651message1_1.png)
[T_生産停止商品]というテーブルがあり、そのテーブルを基にフォーム[F_生産停止商品]を作成しています。
参考ここでのウィンドウの表示は、[ウィンドウを重ねて表示する]を選択しています。
-
[タブ付きドキュメント]と[重ねて表示]の違いと切り替え方法
Access 2007以降、オブジェクトを表示すると、タブ付きウィンドウで表示されるようになっています。 以前からAccessを使っている方 ...
[コードビルダー]と[マクロビルダー]を使用する方法を記していますが、どちらも動作は同じです。その相違については、以下の記事で解説しています。
-
マクロアクション(マクロビルダー)とVBA(コードビルダー)
Accessでは、マクロアクション(マクロの実行アクション)やVBA(Visual Basic for Applications)を使って一 ...
レポートの場合は、プロパティの[空データ時]イベントで設定することができます。
-
印刷するレコードがない場合はメッセージを表示して印刷を中止する
Accessのレポートで印刷を実行しようとしても、該当するデータがない場合があります。 印刷プレビューで確認すれば、印刷を実行せずに済むかも ...
クリック時イベントの[コードビルダー]で設定
フォーム[F_menu]の[生産停止商品]ボタンをクリックして[F_生産停止商品]フォームが開くようにします。
コマンドボタンのプロパティを開いて[イベント]タブの[クリック時]のビルドボタン[...]をクリックします。
参考[F4]キーを押すと、プロパティシートを開くことができます。

以下の[ビルダーの選択]ダイアログボックスが表示されます。[コードビルダー]を選択して、[OK]ボタンをクリックします。
![[ビルダーの選択]ダイアログボックス](https://hamachan.info/WordPress2019/wp-content/uploads/2017/01/acess2010message-03.png)
[クリック時]イベントに下のように入力します。
Private Sub 生産停止商品_Click()
Dim RCount As Long
RCount = DCount("*", "T_生産停止商品")
If RCount = 0 Then
MsgBox "データがありません"
Else
DoCmd.OpenForm "F_生産停止商品"
End If
End Sub

設定後のプロパティには、[イベントプロシージャ]と表示されます。
![プロパティのクリック時[イベントプロシージャ]](https://hamachan.info/WordPress2019/wp-content/uploads/2017/01/acess2010message-06.png)
これで、[F_menu]フォームの[生産停止商品]ボタンをクリックすると、テーブル[T_生産停止商品]のレコードが0件の場合は[データがありません]というメッセージウィンドウが表示されます。
以下は、コードビルダーで設定した時のメッセージウィンドウです。
![[データがありません]のメッセ―ウィンドウ](https://hamachan.info/WordPress2019/wp-content/uploads/2017/01/651message1_1.png)
参考ウィザードを使ったコマンドボタンの作成は、以下の記事で解説しています。
-
コマンドボタンウィザードを使用したボタンの作成
Accessで起動時にメニューフォームを表示した後、ボタンをクリックして目的のフォームを開くようにしたいという要望はよくあります。 コマンド ...
クリック時イベントの[マクロビルダー]で設定
マクロビルダーでも同じように設定できます。
コマンドボタンのプロパティを開いて[イベント]タブの[クリック時]のビルドボタン[...]をクリックします。

以下の[ビルダーの選択]ダイアログボックスが表示されます。[マクロビルダー]を選択して、[OK]ボタンをクリックします。
![[ビルダーの選択]ダイアログボックス](https://hamachan.info/WordPress2019/wp-content/uploads/2017/01/acess2010message-04.png)
[新しいアクションの追加]の▼ボタンをクリックして、メニューから[If]を選択します。
[アクションカタログ]から選択してマクロウィンドウへ追加する方法もあります。
![[新しいアクションの追加]のメニューから[If]を選択](https://hamachan.info/WordPress2019/wp-content/uploads/2017/01/acess2010message-08.png)
テキストボックスに以下を入力します。
Dcount("*","T_生産停止商品")=0
![マクロアクション[If]のテキストボックスにDcount関数を入力](https://hamachan.info/WordPress2019/wp-content/uploads/2017/01/access2010data001.png)
[新しいアクションの追加]で今度は、[メッセージボックス]を選択します。下方へスクロールすると見つけられます。
![[新しいアクションの追加]で[メッセージボックス]を選択](https://hamachan.info/WordPress2019/wp-content/uploads/2017/01/access2010data002.png)
メッセージのテキストボックスに、表示したいテキストを入力します。ここでは、以下のように入力します。
データがありません
メッセージの種類やタイトルについては、以下の記事を参考にしてください。
メッセージの種類の選択肢は、以下の4つになります。ここでは[なし]を選択しています。
[メッセージタイトル]が空白の場合は、[Microsoft Access]と表示されます。

[Elseの追加]をクリックします。

[新しいアクションの追加]でマクロアクション[フォームを開く]を選択します。
![[新しいアクションの追加]で[フォームを開く]を選択](https://hamachan.info/WordPress2019/wp-content/uploads/2017/01/access2010data004-e1730525994663.png)
[フォーム名]の▼ボタンをクリックして、フォーム名を指定します。
![[フォーム名]にプルダウンからフォームを指定](https://hamachan.info/WordPress2019/wp-content/uploads/2017/01/access2010data005.png)
以下のようになればOKです。上書き保存してマクロウィンドウを閉じます。
![[上書き保存]と[閉じる]ボタン](https://hamachan.info/WordPress2019/wp-content/uploads/2017/01/access2010data006.png)
設定後のプロパティには、[埋め込みマクロ]と表示されます。
![プロパティのクリック時[埋め込みマクロ]](https://hamachan.info/WordPress2019/wp-content/uploads/2017/01/acess2010message-07.png)
これで、[F_menu]フォームの[生産停止商品]ボタンをクリックすると、テーブル[T_生産停止商品]のレコードが0件の場合は[データがありません]というメッセージウィンドウが表示されます。
マクロビルダーで設定したメッセージウィンドウは、以下のようになります。

データ(レコード)がある場合は、[F_生産停止商品]フォームが開きます。
DCount関数については、Microsoftの記事を参照してください。
DCount 関数 - Access(Microsoft)
参考レポートの場合は、プロパティの[空データ時]イベントで設定することができます。
-
印刷するレコードがない場合はメッセージを表示して印刷を中止する
Accessのレポートで印刷を実行しようとしても、該当するデータがない場合があります。 印刷プレビューで確認すれば、印刷を実行せずに済むかも ...
関連レコード検索時に該当するレコードがない場合にメッセージを表示する方法は、以下の記事で解説しています。
-
レコード検索時に該当するレコードがない場合はメッセージを表示する
フォームに検索ボックス(テキストボックス)を設置して、管理番号を入力したら該当のレコードを抽出する仕組みを作ります。 その時、検索ボックスに ...
以下も、DCount関数に関する記事です。
-
重複データが入力されたらオリジナルのメッセージを表示する
Accessのフォームで受付番号を入力するように作成しています。 受付番号を入力したときに、既に入力済みの番号であればメッセージウィンドウを ...
-
0を除く平均値を求めるには(Sum関数とDCount関数)
Accessでアンケート集計を作成することになりました。 各質問に[0から5]の5段階の評価をつけもらうことにしました。 ただし、[0]は、 ...
-
重複しないデータの個数とレコードの抽出件数をテキストボックスに自動表示
Accessのフォームに重複しないデータの個数を表示する方法を紹介します。 以下のようにフォームヘッダーのテキストボックスに都道府県の重複し ...
-
オートナンバー型を使わずに[数値型]を使って自動的に連番を入力する
Accessのテーブルでコードなどに、オートナンバー型を使っているとなにかと不便を感じることもあります。 番号に欠番が生じた場合、再度、番号 ...
-
フィールドの同じ値の数をカウントするにはクエリでグループ化
クエリのグループ化は、グループごとに集計できる便利な機能があります。 たとえば、1つのフィールド内の同じデータをグループ化して、合計やカウン ...