I can see why you want to avoid adding the same thing to 200 reports. But there is no better way to handle the NoData case than a little VBA code.
Perhaps you can try this approach...
In a report context, the Report_NoData event is pretty straightforward. It could be as simple as
Private Sub Report_NoData(Cancel as Integer)
Cancel = True
End Sub
So maybe you want to build one of these, then do a cut-and-paste operation to a file in Windows Notepad context (.txt file).
Then design each report one at a time and drop in the new routine.
Or, here's another thought...
If you really, REALLY, REALLY don't want to cut-and-paste 200 times, you can also do it through code. If you are the type who likes to experiment, the above case might be just what the doctor ordered (pardon the mild pun)...
You can open a module and write a function to insert the above into each report by using a For Each loop on the collection of all report documents.
Dim loLineNum as Long
Dim loLastLine as Long
Dim loColNumL as Long
Dim loColNumR as Long
{you will also need to declare a database object, report object, and module object. I'll leave that to you.}
. . .
Set {database-object} = CurrentDB()
For Each {report-object} in {database-object}.Containers!Reports.Documents
If {report-object}.HasModule Then
Set {module-object} = {report-object}.Module
Else
{report-object}.HasModule = True
Set {module-object} = {report-object}.Module
End If
{the above sequence, in English, is "if it has a module, point to it. If it doesn't have a module, make one and point to it."}
loLineNum = 0
loLastLine = 0
loColNumL = 0
loColNumR = 0
If Not {module-object}.Find "_NoData(", loLineNum, loColNumL, loLastLine, loColNumR, False, False, False then
loLineNum = {module-object}.CreateEventProc("NoData", {report-object}.Name)
{module-object}.InsertLines loLineNum+1, "{code to insert}"
{module-object}.InsertLines loLineNum+2, "{more code}"
Else
loLineNum = MsgBox( "Report " & {report-object}.Name & " already has a NoData Event", vbOKOnly, "Event Not Inserted")
End If 'end of IF NOT ...FIND
Next {report-object}
If you put that fragment inside a function, you could call it from a macro. It will find all your report objects, search each one for already having a NoData event, and if no such event exists, it creates one. The part with Else and the MsgBox call is optional, you could leave it out if you don't care to know that a particular report's class module already has a NoData event. Or, you might build this with the MsgBox present the first time and then take it out for later runs in case you build more reports and want to run this again later.
Before you attempt doing this at all, I strenuously advise you to read up on Module objects and the methods associated therewith. Also, try this on a copy of your database just in case it doesn't work quite right the first time.
Note that the CreateEventProc method will create an empty event routine for you. You won't need to create the line that declares the procedure or the line that ends it. You will only need to define the code body you want to add. Might be as simple as a single line, setting the Cancel variable to TRUE. Or, for you purists out there,... CInt(TRUE)
Finally, you really don't like VBA code, then don't even start this 'cause it will take a while to get it exactly right.