次の方法で共有


Report.NoData イベント (Access)

NoData イベントは、データが含まれていないレポート (空のレコードセットにバインドされたレポート) が印刷用に書式設定された後、そのレポートが印刷される前に発生します。 このイベントを使用して、空白のレポートの印刷を取り消します。

構文

NoData (Cancel)

Report オブジェクトを表す変数。

パラメーター

名前 必須 / オプション データ型 説明
Cancel 必須 整数型 (Integer) この設定は、レポートを印刷するかどうかを決定します。 引数 CancelTrue (1) に設定すると、レポートが印刷されなくなります。 DoCmd オブジェクトの CancelEvent メソッドを使用して、レポートの印刷を取り消すこともできます。

解説

このイベントが発生したときにマクロまたはイベント プロシージャを実行するには、OnNoData プロパティを、マクロ名または [Event Procedure] に設定しておきます。

レポートが、そのレポートの RecordSource プロパティを使って、テーブルまたはクエリに連結されていないと、NoData イベントは発生しません。

このイベントは、レポートの Format イベントが発生してから、最初の Print イベントが発生するまでの間に発生します。

このイベントは、サブレポートでは発生しません。 サブレポートにデータがない場合に、サブレポートのコントロールを非表示にする (この場合はコントロールが印刷されないようにする) には、Format または Print イベントが発生したときに実行されるマクロまたはイベント プロシージャで、HasData プロパティを使うことができます。

NoData イベントは、レポートの最初の Page イベントの前に発生します。

次の使用例では、データがないレポートの印刷を取り消します。 また、印刷が取り消されたことをユーザーに通知するメッセージ ボックスも表示されます。

この使用例を実行するには、レポートに次のイベント プロシージャを追加します。 データが含まれないレポートに対して実行してください。

Private Sub Report_NoData(Cancel As Integer) 
    MsgBox "The report has no data." & _ 
         chr(13) & "Printing is canceled. " & _ 
         chr(13) & "Check the data source for the " & _ 
         chr(13) & "report. Make sure you entered " & _ 
         chr(13) & "the correct criteria (for " & _ 
         chr(13) & "example, a valid range of " & _ 
         chr(13) & "dates),." vbOKOnly + vbInformation 
    Cancel = True 
End Sub 

次の例は、レポートの NoData イベントを使用して、表示するデータがないときにレポートが開かないようにする方法を示しています。

Private Sub Report_NoData(Cancel As Integer)

    'Add code here that will be executed if no data
    'was returned by the Report's RecordSource
    MsgBox "No customers ordered this product this month. " & _
        "The report will now close."
    Cancel = True

End Sub

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。