In larger databases, such as ORACLE and some others, you do this with a begin/commit sequence.
To do it simple-mindedly in Access, you create a temporary table (or set of tables) that exactly mirror the structure (but not the contents) of your main data tables.
When you create a transaction, you create it in the temp tables.
When you commit a transaction you (1) do a direct update query, temp-table to corresponding main table, for each involved table. (Probably invoice number and detail lines, but could be worse.) Then (2) erase the associated records from the temp table.
You display from the temp tables. You do your long-term reports from the main tables. And, except underneath the commit button, never the twain shall meet.