The subform can use the same or a very similar query. If there are many fields that need input, I will break it up into stages/phases. The user would input data into a dozen or so fields and save their record to move onto the next stage. The summary/subform may, only, offer a portion of all the available fields (within any given session). The ability to edit is managed by an entirely different form and sometimes requires its own query. The user would reference the subform to determine which record they want to edit.
In order to distinguish one user's entries from another user and in order to distinguish any given user's input from one session/day from another session/point in time, I will create session ID's. The session ID is generated at the start of the session and included in every record created (for that session), at the Parent table level.
I generate session ID's using GUID and the user's UserID Primary Key. I combine the two because there is a very slight chance of duplicating a GUID. If it is super critical, a timestamp can be combined with the GUID. The timestamp would remain the same value throughout the session, regardless of the current time. The timestamp is merely a unique value combined with another unique value, the GUID.
Here is an extract from one of my DB's, used to generate a session ID. It generates the GUID and then combines it with another unique number that is already present in a form. The code illustrates generating a DUID and reformatting it so it is acceptable for SQL and VBA. You may need to create a reference in order for the Objects to be created, I cannot recall.
Code:
'Generate a unique ID for the session
Dim strSesID As String
Dim objGUID As Object
Dim strGUID As String
Set objGUID = CreateObject("Scriptlet.TypeLib")
strGUID = objGUID.Guid
'Make it suitable for SQL
strGUID = Mid(strGUID, 2, Len(strGUID) - 4)
strGUID = Replace(strGUID, "-", "_")
strSesID = Forms!frmMenu.PrimeNum.Value & "_" & strGUID