Update query for Minimum absolute difference in Access [SQL]
The Update statement you posted doesn't include any join to table_3. This leads to a cross join and all the rows will be set to the same (rather random) value.

Here's the query that should perform the correct update:

UPDATE (Table_1 INNER JOIN Table_2 ON Table_1.Acct_Name = Table_2.Acct_Name)  
INNER JOIN Table_3 ON Table_2.Acct_Name = Table_3.Acct_Name 
SET Table_3.Final_Value = [Table_2].[Amt_2]
WHERE Abs([Table_1].[Amt]-[Table_2].[Amt_1])&lt;Abs([Table_1].[Amt]-[Table_2].[Amt_2]);