I wrote about this in the book b/c I see this problem on a regular basis (Best Of The Forum, p. 433). You have to use a SQL Command object to make this work.
SELECT * FROM Table AS T0
WHERE T0.DateField =
(SELECT MAX(T1.DateField)
FROM Table as T1
WHERE T0.PrimaryKey=T1.PrimaryKey)
In this SQL you have to replace "Table" with your table name. Replace "DateField" and "PrimaryKey" with the appropriate date field that you are sorting on and then use the name of the primary key field. This effectively uses a sub-query to find the last date for each primary key and then joins that resultset to the same table. Since the join is on the date field, then this lets you just get the last record that matches the date in the sub-query.