Hi Micron and Bob.

Originally Posted by
Micron
You will need to change one or both of your joins, methinks. An INNER join can only return records where both fields are equal, and nothing equals Null. You want ALL the records from one table, and from the other table, whatever records match between the joined fields. Double click on the joins and read the explanations for the 3 options.
What I don't get is how you can have a software key value in an orders table but no related customer id.
Thank you very much for your replies. I have solved the issue using your suggestions. 

Please see new code below;
Code:
SELECT SoftwareKeys.OrderNo, SoftwareKeys.PurchaseDate, SoftwareKeys.SoftwareName, SoftwareKeys.KeyNo, SoftwareKeyCodes.SoftwareLevel, SoftwareKeyCodes.SoftwareLevelCode, SoftwareKeyCodes.Comment, SoftwareKeys.CustomerID, Customers.CompanyName
FROM (Customers RIGHT JOIN SoftwareKeys ON Customers.CustomerID = SoftwareKeys.CustomerID) INNER JOIN SoftwareKeyCodes ON SoftwareKeys.KeyNo = SoftwareKeyCodes.KeyNo
WHERE (((SoftwareKeys.OrderNo) Like "*" & [Enter the purchase order number:] & "*"));
Micorn, Bad practice I know, but there is no Orders table. The OrderNo is stored with KeyNo record.