That does work when you are calculating the difference between two fields,
but I need the calculation for the next date in the same field.
Your problem is that in Excel it's very normal to refer to "the next row" or
"the previous row".
In Access, there IS no "next row".
Records in an Access Table are unordered: think of a table as a bucket full of
eggs, where each egg is a record. There is no predefined order of records. You
must - no option! - have some field or fields within the table to define the
order. AT A GUESS (it's not clear to me from your example) you want to find
the number of days between the date for a given record, and the most recent
prior date for the same company - if there is one. Of so, you'll need a
Subquery: something like
SELECT A.Product, A.[Date], DateDiff("d",
.[Date], [A].[Date])
FROM yourtable AS A
INNER JOIN yourtable AS B
ON A.Product = B.Product
WHERE B.[Date] = (SELECT Max(C.[Date]) FROM yourtable AS C WHERE C.[Date] <
[A].[Date]);
Note that Date is a reserved word (for the builtin Date() function which
returns the system clock date); I'd really suggest changing the fieldname.