1st you'll need to decide after what user triggered event you want all this to happen. It could be after the checkbox is updated or on a button click. In your form's design view select the control (your chosen checkbox or button) and in the properties window go to the 'Event' tab, click the '...' button on the event you want to use, then select code builder.
Here's some pseudo code
Code:
If Me.checkbox_name = True then
'Code to be executed if the checkbox is checked
if MsgBox('Are you sure you want to do the thing?", vbYesNo, "Confirm") = vbYes Then
'user has confirmed, do work...
Forms!Form2.Field3 = Forms!Form2.Field2
Forms!Form2.Field2 = Me.Field1 ' Note: [Me] is a shortcut that refers to the form object from which the code has been executed, in this case Form1
end if
Else
'Code to be executed if the checkbox is not checked
End if
How to refer to objects on different forms:
http://access.mvps.org/access/forms/frm0031.htm
Here's a site I just found on google that explains how to use a message box to get user confirmation:
https://www.excel-pratique.com/en/vba/dialog_boxes
(EDIT)
The undo action might be tricky as whatever was in the Form2.Field3 control was presumable previously overwritten. You'll need to save that somewhere, maybe some temporary variable.