Вы пытаетесь имитировать ROW_NUMBER () в Access. К сожалению, Access не является хорошим двигателем для подобных вещей. Собака замедляется после ста или около того записей.
С учетом сказанного, вот что вы можете сделать:
SELECT t1.ID, t1.SomeText, t1.SomeDate,
(
SELECT COUNT(*) + 1
FROM Table1 AS t2
WHERE t1.SomeText > t2.SomeText
) as RowNumber
FROM Table1 t1
ORDER BY t1.SomeText
Это даст результат (в моей конкретной таблице):
ID | SomeText | SomeDate | RowNumber
10 | 4NGJN | 1/20/2010 | 1
11 | ABH | 1/20/2010 | 2
2 | asldkfj | 1/20/2010 | 3
1 | asldkfjaslgh | 1/20/2010 | 4
7 | ewoiuhdkjnlbkjbn | 1/20/2010 | 5
4 | oihkjldhnlkmdfn,mn | 1/20/2010 | 6
3 | oihoih | 1/20/2010 | 7
5 | qwwern | 1/20/2010 | 8
8 | SKN | 1/20/2010 | 9
9 | WEOIN | 1/20/2010 | 10
6 | wetrhn | 1/20/2010 | 11
12 | XDNKJ | 1/20/2010 | 12
Я бы сделал сохраненный запрос в Access (представление в SQL Server), а затем написал бы такой запрос в вашем приложении:
SELECT ID, SomeText, SomeDate, RowNumber
FROM myView
WHERE RowNumber > 5
AND RowNumber < 11
Конечно, «5» и «11» вы бы передавали из своего клиентского приложения и основывались бы на конкретной странице, на которой вы находитесь. (Вероятно, это будет 50 и 100 или что-то для вас).