The following are my findings on sub-report problems during the past 3 weeks
The crystal report by default will abstract the db name from the DSN and put it as name your reference.
i.e. If you refer to a table MyTable of Mydb, the object reference will be Mydb.dbo.MyTable. Under this situation, you can go to database menu, set location menu item to edit the reference to dbo.MyTable. This tip applies to sub-report also.
Apart from that, if your report refers to a single database and contains sub-report, your application calling the report should change the default database of your DSN.
(by means of API calls to registry)
This is useful if your application is going to refer to different db based on the login information. If you are using SQL server, you may try this by switching the DSN to point to masterdb and see if your application still working.
The crystal report by default will abstract the db name from the DSN and put it as name your reference.
i.e. If you refer to a table MyTable of Mydb, the object reference will be Mydb.dbo.MyTable. Under this situation, you can go to database menu, set location menu item to edit the reference to dbo.MyTable. This tip applies to sub-report also.
Apart from that, if your report refers to a single database and contains sub-report, your application calling the report should change the default database of your DSN.
(by means of API calls to registry)
This is useful if your application is going to refer to different db based on the login information. If you are using SQL server, you may try this by switching the DSN to point to masterdb and see if your application still working.