you can't...not the answer that you want. Crystal reads the report and the data. When it comes to a subreport, it stops processing the main report and processes the subreport completely, goes back to the main report and processes the next subreport completely, so there is no searching one subreport from another.
how you might get around this is to get rid of one of the subreports, by incorporating it into the main report, and have the remaining subreport tied to the what was the other subreport by some parameter (value). Now you can pass in a value that the subreport can look for.
personally, I don't use subreports too often, they are a big hit to performance, as each subreport will hit the database again. for your report with 2 subreports and 100 records in the main report, would be 201 hits to the database, and if the network is busy... In many cases, I believe that, subreports are unnecessary. I also use stored procedures to drive all my reports as there is much you can do in a stored proc to manipulate the data and get the data that you need already related that renders the need for a subreport moot. That being said, every now and then I need a subreport, but I can count on 1 hand the number of subreports I have written in the past 4 years of report writing.
I don't think that I best report writer in the world, perhaps I am trying to be laziest, but from a performance stance and a complexity stance, it is way easier to maintain 1 report instead of 3, which are the subreports and the main. whenever 1 changes, it will/can affect the other 2 in terms of layout and visual clarity. Get the data once, get all the data that you need for any record in the report and return it to the report (stored procs do this) and this allows you to use your database to the utmost. you paid for the sql server, harness its power.
HTH