thanks that helps to put it in context.
So now I need to know about your table structure - I'm assuming permitData is your parent record and has a hidden PK field and the arrival data is the child record with a FK field to link back to the parent record (PK=primary key, FK=Family or Foreign Key)
There are a number of 'what if' questions - for example what if the boater stays more than one night - does the ranger enter each location night as it occurs? or is there a gap in the dates? I'll assume the former. What is to prevent the user from changing dates in an uncontrolled manner?, etc
I think the formula you need is something like
nz(DMax("ArrivalDate","tblArrivals","PermitFK=" & Parent.PermitPK)+1,Parent.EntryDate)
which is saying - 'get the last date in tblArrivals for this permit and add 1 and if there isn't one then use the entry date for the permit on the parent form'
And I would put this code in the arrivals form current event with the proviso it is only triggered if it is a new record
Code:
Private Sub Form_Current()
if me.newrecord then arrivalDate=nz(DMax("ArrivalDate","tblArrivals","PermitFK=" & Parent.PermitPK)+1,Parent.EntryDate)
End Sub
I would also change the arrivaldate control tab order to make sure the user does not tab into this control by accident and change the tab stop to no (both found on the other tab for the control properties.
This code is triggered when the use clicks on the new record row of the subform - which from your description seems a more natural way of executing it. You may want to add additional code to prevent new records being added once the exit date-1 has been created. That code would be something like this - again in the arrivals form current event after the newrecord line
me.allowadditions=arrivalDate<Parent.ExitDate
This line on it's own is insufficient on it's own - you will need additional code to stop allowing additions when the form is first opened for example - but it should point you in the right direction