Brian,
I've got a similar situation, in fact there are two child files involved. Until now I've taken the approach you mention: save the master record and then have the user go back and add the children, if any.
But I'm in the process of rewriting that particular procedure and I've decided to turn it into a wizard so the user can do it all in one go. In order to facilitate that I've created 3 MEM files, one to hold the master rec and two for the children. When the user calls the form I create a guid and use that as the key in all three files (PK in the master, FK in the children) until the user clicks the save button. At that point I copy the master record from the MEM file to the database and save it. Then I've got the FK to use when I copy from the other MEM files to the database. Finally, I delete the records from the TEMP files.
This means more work for you, but that's upfront and only one time. And the user gets a much better experience when using the program.
As a side effect you may end up with orphan records in the TEMP child tables if the user creates child records but never saves the master. You can either do some house keeping or simply wait till the program gets restarted at which point the temp files go away anyway.
HTH
Peter