The ! turns up when iPhoto loses the connection between the thumbnail in the iPhoto Window and the file it represents. That's what gives.
What version of iPhoto? Assuming 09 or later...
Back Up and try rebuild the library: hold down the command and option (or alt) keys while launching iPhoto. Use the resulting dialogue to rebuild. Choose to Repair Database. If that doesn't help, then try again, this time using Rebuild Database.
If that fails:
Download iPhoto Library Manager and use its rebuild function. (In Library Manager it's the FIle -> Rebuild command)
This will create an entirely new library. It will then copy (or try to) your photos and all the associated metadata and versions to this new Library, and arrange it as close as it can to what you had in the damaged Library. It does this based on information it finds in the iPhoto sharing mechanism - but that means that things not shared won't be there, so no slideshows, books or calendars, for instance - but it should get all your events, albums and keywords, faces and places back.
Because this process creates an entirely new library and leaves your old one untouched, it is non-destructive, and if you're not happy with the results you can simply return to your old one.
Currently Being ModeratedSep 26, 2012 11:52 PM (in response to Terence Devlin)
Thanks for the input. Option 1 didn't do the job; I still get the warning instead of the photo in many cases. I'll try Option 2 tomorrow but tonight I cannot locate the iPhoto Library Manager download. Tomorrow will be soon enough.
Terence: The solution was so complex that I will not go into it; it would just take too much time. Because of the unusual back story of this specific computer, it is most unlikely others would have the same problem. Thank you for your help.