Accessのテーブルでレコードが1件もない時、そのテーブルを元にして作成したフォームを開こうとする場合は、[データがありません]というメッセージウィンドウを表示する方法です。
以下の例では、[生産停止商品]ボタンをクリックしたときに、メッセージウィンドウを表示しています。
[T_生産停止商品]というテーブルがあり、そのテーブルを元にフォーム[F_生産停止商品]を作成しています。
ボタンの[クリック時]イベント
フォーム[F_menu]の[生産停止商品]ボタンをクリックして[F_生産停止商品]フォームが開くようにします。
コマンドボタンのプロパティを開いて[イベント]タブの[クリック時]の[...]ボタンをクリックします。
参考[F4]キーを押すと、プロパティシートを開くことができます。
以下の[ビルダーの選択]ダイアログボックスが表示されます。[コードビルダー]を選択して、[OK]ボタンをクリックします。
[クリック時]イベントに下のように入力します。これで、[生産停止商品]ボタンをクリックすると、フォーム[F_生産停止商品]が開くようになります。
Private Sub 生産停止商品_Click()
DoCmd.OpenForm "F_生産停止商品"
End Sub
参考ウィザードを使ったコマンドボタンの作成は、以下の記事で解説しています。
-
ウィザードを使ったコマンドボタンの作成
Accessで起動時にメニューフォームを表示した後、ボタンをクリックして目的のフォームを開くようにしたいという要望はよくあります。 コマンド ...
フォームの[読み込み時]イベント
フォーム[F_生産停止商品]をデザインビューで開いて、[読み込み時]イベントに入力して、[T_生産停止商品]のレコードがなければ[データがありません]というメッセージを開くようにします。
読み込み時は、フォームを開きレコードが読み込まれた時([開くとき]イベントの後)に発生します。
フォームのプロパティの[イベント]タブにある[読み込み時]の[...]ボタンをクリックします。
[ビルダーの選択]ダイアログボックスが表示されます。[コードビルダー]を選択して、[OK]ボタンをクリックします。
[読み込み時]イベントに以下のように入力します。
Private Sub Form_Load()
Dim RCount As Long
RCount = DCount("*", "T_生産停止商品")
If RCount = 0 Then
MsgBox "データがありません"
Cancel = True
DoCmd.Close acForm, "F_生産停止商品", acSaveNo
End if
End Sub
これで、[F_menu]フォームの[生産停止商品]ボタンをクリックすると、レコードが0件の場合は[データがありません]と表示されます。
データ(レコード)がある場合は、[F_生産停止商品]フォームが開きます。
関連以下は、Dcount関数に関する記事です。
-
重複データが入力されたらオリジナルのメッセージを出す
Accessのフォームで受付番号を入力するように作成しています。 受付番号を入力したときに、既に入力済みの番号であればメッセージウィンドウを ...
-
0を除く平均値を求めるには
Accessでアンケート集計を作成することになりました。 各質問に[0から5]の5段階の評価をつけもらうことにしました。 ただし、[0]は、 ...
-
重複しないデータの個数とレコードの抽出件数を自動表示
Accessのフォームに重複しないデータの個数を表示する方法を紹介します。 下のようにフォームヘッダーのテキストに部署数の重複しない個数を表 ...