Instead of using an IN clause and a subquery you could try a JOIN
SELECT
aj.NOMINAL_CODE,
aj.DETAILS,
aj.AMOUNT,
aj.TYPE
FROM
AUDIT_JOURNAL AS aj
INNER JOIN
PROJECT_TRAN AS pt
ON aj.TRAN_NUMBER = pt.AUDIT_TRAIL_ID
WHERE pt.AUDIT_TRAIL_ID > 0
re: your comment in the edit to your question
Looks like Subqueries don't work when linked to another database via ODBC (The original database is a SageLine50 database).
That is certainly not true for all ODBC linked tables. I created tables [AUDIT_JOURNAL] and [PROJECT_TRAN] in SQL Server 2008 R2, created linked tables in Access 2010, and your original query works fine in Access. (Mine does, too.) Your issue is almost certainly caused by a deficiency in the SageLine50 ODBC driver.