I don't know of any way to show a message box if there is no data. However, we have a standard "No Data Found" message on the report itself if there is no data in the query.
This message is put in its own section (usually in a first group header section) with a suppress formula of:
not IsNull({table.keyfield})
This formula looks at a key field from the report's tables and suppresses the section if there is data in the field. All of the other other sections on the report have either "Suppress Blank Section" turned on (if there is only data in the section) or, when there's text in the section, a suppress formula of:
IsNull({table.keyfield})
The only other way around this I can think of is through writing an application which will run the query internally, populate a data set with it, display a message if there is no data or run the report if there is data.
-Dell