As first step, add aliases for all instances of source files, so Access can decide which one to use where. And I'm not sure about Access allowing Where clause in Join condition (I use SQL Sever as backend for my DB's lately, and I'm not sure about Access SQL syntax anymore), so to be sure in my example I'm moving this part too. Something like (on fly):
Code:
SELECT tbldocuments.DocID, hd.Version
FROM tbldocuments d LEFT OUTER JOIN tblhousedocuments hd ON d.DocID = hd.DocID
WHERE d.DocHouseType = 'Detached' AND hd.Version = (SELECT Max(hd0.Version) from tblhousedocuments hd0 WHERE d.DocID = hd0.DocID = d.DocID AND hd0.HouseID = 2) ;