Since Guids are unique anywhere you find them, they make a good primary key.
The trick is to create them where and when you need them using the CoCreateGuid
You can create a new record on your client, assign it a unique identifier,
and REMEMBER it as a local variable for all the child records without having
to ask the server to return the PrimaryKey for the new record.
Declare Function CoCreateGuid Lib "OLE32.DLL" (pGuid As GUID) As Long
See the knowledgebase article "HOWTO: Use CoCreateGUID API to Generate a GUID with VB
" on Microsoft's support site.