Peter, it didn't do anything! Am I missing anything"
SELECT [Activity Table4].Ob AS [Object type], [Activity Table4].ObjectID AS [Object ID], [Activity Table4].IT AS Infotype, [Activity Table4].Subty AS Sty, [Infotypes Desc].Description, [Activity Table4].[Changed on], [Activity Table4].[User name] AS [User], [Activity Table4].[Variable user data field] AS [Old Info], Infotypes.[Variable user data field] AS [New Info]
FROM ([Activity Table4] INNER JOIN [Activity Table] AS Infotypes ON ([Activity Table4].Ob = Infotypes.Ob) AND ([Activity Table4].Subty = Infotypes.Subty) AND ([Activity Table4].IT = Infotypes.IT)) LEFT JOIN [Infotypes Desc] ON ([Activity Table4].Subty = [Infotypes Desc].STY) AND ([Activity Table4].IT = [Infotypes Desc].IT)
WHERE ((([Activity Table4].[End date])<[Infotypes].[End date]))
ORDER BY [Activity Table4].ObjectID;
UNION
SELECT FIRST(Activity Table4.[object type]) AS [firstObject type],
Activity Table4.OBJECT,
Activity Table4.infotype,
FIRST(Activity Table4.sty) AS firststy,
FIRST(Activity Table4.[changed on]) AS [firstchanged on],
FIRST(Activity Table4.USER) AS firstuser,
FIRST("") AS olddate,
FIRST(Activity Table4.[data field]) AS [firstdata field]
FROM Activity Table4
GROUP BY Activity Table4.OBJECT,Activity Table4.infotype
HAVING (((COUNT(Activity Table4.OBJECT)) = 1));