Thanks everyone for your help, although I originally put this has solved, I have hit a snag and would appreciate some help.
The original question was to calculate mileage between previous entry and current, which was solved excellently. And now works, if there is a previous record mileage entry. What I have noticed is, the query doesn't not produce a difference if there isn't a entry in the immediate previous entry, it could be several entries earlier. Is there an additional code etc that could look for a previous mileage entry and not the immediate entry, hope that makes sense.
This is the code I have thus far and works fine, but needs to be able to calculate on a previous date not immediately previous.
SELECT qry_RRVHoursDiffFeed.Unit, qry_RRVHoursDiffFeed.UnitName, tblworkdone.newjobdate, tblworkdone.mileagehours, (SELECT TOP 1 Dupe.mileagehours FROM tblworkdone AS Dupe WHERE Dupe.unitid = tblworkdone.unitid AND Dupe.newjobdate < tblworkdone.newjobdate ORDER BY Dupe.newjobdate DESC, Dupe.vehmainid) AS PriorValue, tblWorkdone.MileageHours-PriorValue AS Diff
FROM qry_RRVHoursDiffFeed INNER JOIN tblworkdone ON qry_RRVHoursDiffFeed.Unitid = tblworkdone.Unitid
WHERE (((tblworkdone.mileagehours) Is Not Null))
ORDER BY qry_RRVHoursDiffFeed.Unit, tblworkdone.newjobdate DESC;