All you need to do is to group data by
ItemCode to get
MAX(PurchaseDate) then join
Price:
SELECT a.ItemCode, a.PurchaseDate, a.Price
FROM Trn_Purchase AS a INNER JOIN (
SELECT b.ItemCode, MAX(b.PurchaseDate) AS PurchaseDate
FROM Trn_Purchase AS b
GROUP BY b.ItemCode
) AS c ON a.ItemCode = c.ItemCode AND a.PurchaseDate = c.PurchaseDate
For further information, please see:
MS Access: Max Function[
^]