1
There isn't a .Clone method for recordsets unfortunately, so I think you'd have to copy the values of the fields to variables, then copy them back to a new record within the recordset, after creating a new record with the .AddNew method.
2
I don't know why the code here isn't working, I don't mess with recordsets very much, but you might try this in the "onunload" (not sure if it works with "onOK", but it might) event of your form:
ThisEvent.Object.Fields("Etat").value = 1
ThisEvent.Object gets a reference to the form (if fired from a form's event), and from there you can access the form's fields.
You could then put the Application.Map.ReDraw(True) in the onKillActive event of the form.
Hope this helps!