This many not necessarily the problem, but you should move the sn.Update and sn.Close to above the Endif....
sn!Name = Me.name
sn!Shift = Me.Shift
'Updates and closes the record
sn.Update
sn.Close
End If
'Clears the fields for the next entry
Me.dp1 = Null
....