メイン コンテンツへスキップ
サポート
Microsoft アカウントでサインイン
サインインまたはアカウントを作成してください。
こんにちは、
別のアカウントを選択してください。
複数のアカウントがあります
サインインに使用するアカウントを選択してください。

既定では、レコードを含むレポートを印刷できます。 この問題を解決するには、マクロまたは Microsoft Visual Basic for Applications (VBA) コードを使用して、レポート内のレコードがないことを検出し、印刷操作を取り消します。 この記事の手順では、両方の手法を使用する方法について説明します。

目的に合ったトピックをクリックしてください

レコードが含まれていない場合は、レポートの印刷を取り消したい場合があります。 たとえば、新しい製品の販売を開始する場合、まだ販売を登録していない期間が発生する可能性があります。 したがって、レポートの一部に詳細レコードが含まれていない可能性があり、 Count 関数などの集計関数にカウントするものがない可能性を考慮する必要があります。 このような発生を適切に処理するには、印刷ジョブを取り消すマクロを作成します。 また、慎重に配置された VBA コードを数行追加して、同じことを行うこともできます。 VBA は、 Access 使用するプログラミング言語です。

レポートの On No Da ta イベント プロシージャにマクロまたは VBA コードを追加します。 Access は、レコードのないレポートを実行するたびに、 On No Data イベントをトリガーします。 この記事で説明するマクロと VBA コードは、適切なメッセージを表示し、そのレポートにデータが含まれている場合はレポートの印刷を取り消します。 On No Data イベント プロシージャにマクロまたは VBA コードを追加すると、レコードを含むレポートを開くたびにマクロまたは VBA コードが実行されます。 [OK] をクリックしていずれかのアラート メッセージを閉じると、マクロによって空白のレポートも閉じられます。 レポートにマクロまたは VBA コードを追加すると、レポート ビューまたはレイアウト ビューに表示しようとすると空白のレポートは開かなくなりますが、デザイン ビューでレポートを開くことができます。

マクロを使用して印刷を取り消す

このセクションで説明するマクロでは、空白のレポートを印刷しようとすると、アラート メッセージが表示されます。 [OK] をクリックしてメッセージ ボックスを閉じると、マクロによって印刷操作が自動的に取り消されます。 アラート メッセージを含めなければ、レポートを印刷しようとしたときに何も起こらないかのように表示されます。これは、レポートのユーザーを混乱させる可能性があります。

マクロを作成する

  1. ナビゲーション ウィンドウで、変更するレポートを右クリックし、[ デザイン ビュー] をクリックします。

  2. [デザイン] タブの [表示/非表示] グループの [プロパティ シート] をクリックします。

    -または-

    地域と言語の設定に応じて、レポートの左上隅または右上隅にあるボックスをダブルクリックします。

  3. [ イベント ] タブをクリックし、[ データなし ] プロパティ ボックスで、[ [ビルダー] ボタン] をクリックします。

    [ ビルダーの選択 ] ダイアログ ボックスが表示されます。

  4. [ マクロ ビルダー] をクリックし、[OK] をクリック します

    マクロ デザイナーが起動し、空白のマクロを表示します。

  5. マクロ デザイン ウィンドウのマクロ アクションのドロップダウン リストで、一覧から [MessageBox ] を選択します。

  6. [ メッセージ ] ボックスに、アラート メッセージのテキストを入力します。

    たとえば、次のように入力できます。 レポートするレコードはありません。

  7. 必要に応じて、[ ビープ音 ] ボックスの引数の値を [はい ] から [いいえ ] に変更し、[ 種類 ] ボックスの一覧で、アラート メッセージに表示するアイコンの種類を選択します。

  8. [ タイトル ] ボックスに、アラート メッセージのタイトルを入力します。

    たとえば、「 レコードなし」と入力できます。

  9. MessageBox アクションの下にあるマクロ アクションのドロップダウン リストを選択し、[CancelEvent] を選択します。

  10. [ デザイン ] タブの [ 閉じる ] グループで、[保存] をクリック します

  11. [デザイン] タブの [閉じる] グループで [閉じる] をクリックします。 アラート メッセージが表示され、マクロとレポート プロパティへの変更を保存するかどうかを確認するメッセージが表示された場合は、[ はい] をクリックし、レポートを閉じ、メッセージが表示されたら変更を保存し、次の手順に進んでテストします。

マクロをテストする

  • ナビゲーション ウィンドウで、マクロを含むレポートを右クリックし、[ 印刷] をクリックします。 選択したオプションに応じて、アラート メッセージが表示されます。

    [OK] をクリックしてメッセージを閉じると、CancelEvent アクションによって印刷操作が停止します。 他のイベント (表示のためにレポートを開くなど) を指定していないため、レポートは閉じます。

ページの先頭へ

VBA コードを使用して印刷を取り消す

ここで説明する VBA コードは、前のセクションで説明したマクロと同様に機能します。空白のレポートを開くとアラート メッセージが表示され、警告メッセージを閉じると印刷操作が取り消されます。

VBA コードを追加する

  1. ナビゲーション ウィンドウで、変更するレポートを右クリックし、[ デザイン ビュー] をクリックします。

    注: この手順を完了するには、レコードを含むレポートを使用します。

  2. [デザイン] タブの [表示/非表示] グループの [プロパティ シート] をクリックします。

    -または-

    地域と言語の設定に応じて、レポートの左上隅または右上隅にあるボックスをダブルクリックします。

  3. [ イベント ] タブをクリックし、[ データなし ] プロパティ ボックスで、[ [ビルダー] ボタン] をクリックします。

    [ ビルダーの選択 ] ダイアログ ボックスが表示されます。

  4. [ コード ビルダー] をクリックし、[OK] をクリック します

    Visual Basic エディターが起動し、空白のイベント プロシージャが表示されます。

  5. Visual Basic エディターで次のコードを入力して、完了すると、Report_NoData プロシージャが次のように表示されるようにします。

    Private Sub Report_NoData (Cancel As Integer)
    MsgBox "There are no records to report", vbExclamation, "No Records"
    Cancel = True
    End Sub
  6. 完了したら、[ ファイル] をクリックし、[ 保存] をクリックします。

  7. [ ファイル] をクリックし、[閉じる] をクリック し、[Microsoft Access に戻る] をクリックします。

  8. 開いているレポートを閉じ、[ はい ] をクリックして保存を確定します。

  9. ナビゲーション ウィンドウで、変更したレポートを右クリックし、[ 印刷] をクリックします。 選択したオプションに応じて、アラート メッセージが表示されます。

Report_NoData プロシージャでは、MsgBox 関数を使用して、メッセージを報告するレコードがなく、[OK] ボタンが表示されます。 [OK] をクリックすると、手順の "Cancel=True" 行が Access に対してレポートを取り消すように指示します。 Cancel は、イベント プロシージャに自動的に渡される引数であり、イベント プロシージャが完了したときに常に Access によってチェックされます。

ページの先頭へ

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?
[送信] を押すと、Microsoft の製品とサービスの改善にフィードバックが使用されます。 IT 管理者はこのデータを収集できます。 プライバシーに関する声明。

フィードバックをいただき、ありがとうございます。

×