Question:
In the Table SPA Only, are the fields SPA.pkProjectID, and SPA.PROJECTNUMBER distinct?
Your Query Selects Distinct entries. I assume that this is because a given keyword could result in the same record for more than one of the Criteria. If it can also result in more than one record for the same Criteria, then this could account for some (if not all) of the missing records that you referred to.
You might want to try using a Union Query that does not use the Distinct qualifier and has an additional Field to show what matched. By doing this you might be able to get the missing records back. Once you have done this, you can work on modifying the Query to bring back only the results that you desire. Something like this would be a good starting point:
SELECT SPA.pkProjectID, SPA.PROJECTNUMBER, "JOBTAS" AS WhereFound
FROM SPA INNER JOIN SPATASKS
ON SPA.PROJECTNUMBER = SPATASKS.fkProjectID
WHERE SPA.JOBTAS Like "*" & [keyword] & "*" UNION
SELECT SPA.pkProjectID, SPA.PROJECTNUMBER, "WORKAREA" AS WhereFound
FROM SPA INNER JOIN SPATASKS
ON SPA.PROJECTNUMBER = SPATASKS.fkProjectID
WHERE SPA.WORKAREA Like "*" & [keyword] & "*" UNION
SELECT SPA.pkProjectID, SPA.PROJECTNUMBER, "STEPSOFTASK" AS WhereFound
FROM SPA INNER JOIN SPATASKS
ON SPA.PROJECTNUMBER = SPATASKS.fkProjectID
WHERE SPATASKS.STEPSOFTASK Like "*" & [keyword] & "*" UNION
SELECT SPA.pkProjectID, SPA.PROJECTNUMBER, "HAZARDREACTION" AS WhereFound
FROM SPA INNER JOIN SPATASKS
ON SPA.PROJECTNUMBER = SPATASKS.fkProjectID
WHERE SPATASKS.HAZARDREACTION Like "*" & [keyword] & "*" UNION
SELECT SPA.pkProjectID, SPA.PROJECTNUMBER, "SAFEPLAN" AS WhereFound
FROM SPA INNER JOIN SPATASKS
ON SPA.PROJECTNUMBER = SPATASKS.fkProjectID
WHERE SPATASKS.SAFEPLAN Like "*" & [keyword] & "*" UNION
SELECT SPA.pkProjectID, SPA.PROJECTNUMBER, "RESOURCES" AS WhereFound
FROM SPA INNER JOIN SPATASKS
ON SPA.PROJECTNUMBER = SPATASKS.fkProjectID
WHERE SPATASKS.RESOURCES Like "*" & [keyword] & "*";
Note that this code is untested, but should provide an appropriate framework to start from.