Hi. Your code is trying to change a record in the other form by assigning a value to the ID field. I'd guess that your ID field is an autonumber type, which cannot be set or changed by the user. This is just as well, because you don't really want to overwrite whatever is in that field every time you open the form by clicking on the button in form 3.
You need instead to apply a filter to your form when you open it. The filter will restrict the record shown to the one that matches the ID listed. Remove the assignment line from your code, and change the OpenForm one to
- DoCmd.openform "form2", , , "[ID] = " & Me!ID
Note that the form's Add mode, which you were using in the version posted, would only have let you add new records, not edit existing ones. I have removed it from the OpenForm call above.
Also, the Value property is the default for any control - it can be left off the reference to the control without any problem (as shown above).
Welcome to Bytes!
-Stewart