I don't know InfoPath at all, so forgive if this will not work but this is the solution I was suggesting:
You build a form with the controls on it you need to update the table, but none of those controls are bound to the table fields. This means that you have to provide all of the record navigation, validation, and commitment functionality the user will need. You will need a button to move to the next record - validating that the current record should be saved first, etc.
So, once you have the form built, your "Save Record" code (running when the user clicks a "Save" button and/or when they navigate to the next record) would first validate the information, then commit the changes to the table (by writing the values of the controls to the table. It would then use your primary key information to construct an UPDATe statement.
The idea there is that your primary key information for this record will return a unique record and make it so that the Update Query updates only that one record.
The way it is set up now, it sounds like you have a query (which is not yet working properly) that you want to run every time a new record is written to the table. The problem with that is that there is no limit to the number of records returned by the UPDATE statement. It will always re-write the Date field for all of the records in the table. That's why I'm saying do it for one record at a time as the record is written. The way you ensure that you do it when the record is written is by unbinding your form.
Finally, you shouldn't use "Date" as a field name. That is a reserved word and is probably causing you some difficulty.
Honestly, I wonder if this will help, though. If you can get to the point where you can run code and DoCmd.RunSQL or execute an UPDATE query... you should just be able to use the DateDiff() function to get the value to write to the table in that field without having to go the extra step of an SQL statement at all. Hmm... Like I said, I don't know InfoPath, so I guess I'll just give you the information above and let you see if it works for you.
HTH