Believe me, we are doing our best to try and understand your issue. I ask questions when I don't and I think we do understand what you want but conveying instructions not always easy in print.
I disagree about referencing code produced under older versions. VBA hasn't changed much and ideas can be derived from examples.
I don't see Order_ID on the form image except referenced in textbox expression.
Missing = sign; try ! instead of . referencing Order_ID (really, either should work):
DoCmd.OpenReport "Invoice", acViewNormal, , "Order_ID=" & Me!Order_ID
If that fails, use [] because the field names really have spaces, not underscore:
DoCmd.OpenReport "Invoice", acViewNormal, , "[Order ID]=" & Me![Order ID]
That code assumes Order_ID is number, not text field.
Use a real email address in place of "email address" or maybe a reference to control name on form (just guessing about name): Me.Email
It might be necessary to commit the record entry/edit to table before it is available for the report output.
DoCmd.RunCommand acCmdSaveRecord
Learn debug methods. Refer to link at bottom of my post for VBA debugging techniques.