I think this comes under the API juristiction.....

How can I catch the 'close' event from a Crystal Report viewer preview window? The help given in the Seagate help files doesn't help me much.

I do something like.....
Code:
    Set crwApp = CreateObject("Crystal.crpe.application")
    Set crReport = crwApp.OpenReport("D:\DVD Ordering System\Reports\DVD002.rpt")
    Set repView = crReport.Preview
which is fine except that the viewer is not modal. I either want to be able to set the view to modal or loop until the viewer is closed by the user - but I don't know how to achieve either. The help does mention API calls but these examples aren't in VB, and I'm far too much of a cabbage to figure out how to translate them!