Here's one approach involving two queries which are then combined as a union query.
Query1 - this gets all the records except the last where there is no NextFruit:
Code:
SELECT Table1.ID, Table1.Fruit, Table1_1.Fruit AS NextFruit
FROM Table1, Table1 AS Table1_1
WHERE (((Table1_1.ID)=[Table1].[ID]+1));
Query2 - this gets the last record using an unmatched query
Code:
SELECT Table1.ID, Table1.Fruit, '' AS NextFruit
FROM Table1 LEFT JOIN Query1 ON Table1.ID = Query1.ID
WHERE (((Query1.ID) Is Null));
Now union both to get all records
Code:
SELECT Table1.ID, Table1.Fruit, Table1_1.Fruit AS NextFruit
FROM Table1, Table1 AS Table1_1
WHERE (((Table1_1.ID)=[Table1].[ID]+1))
UNION SELECT Table1.ID, Table1.Fruit, '' AS NextFruit
FROM Table1 LEFT JOIN Query1 ON Table1.ID = Query1.ID
WHERE (((Query1.ID) Is Null));
See attached