Самое близкое, что я могу получить, это добавить поле к источнику записей вашей формы, которое нумерует каждую строку в группе. Затем вы можете добавить текстовое поле в подробный раздел вашей формы с этим выражением в качестве источника управления.
= IIf (rank = 1, [State], ""]
В текстовом поле будет отображаться первое вхождение каждого состояния, а в противном случае строка нулевой длины.
Я проверял этот запрос на источник записи.
SELECT
m1.state,
m1.names,
(
SELECT Count(names)
FROM MyTable AS m2
WHERE
m2.state=m1.state
AND m2.names<=m1.names
) AS rank
FROM MyTable AS m1
ORDER BY m1.state, m1.names;
И это сработало, но не редактируется. Если вам нужно иметь возможность редактировать, попробуйте запрос, который использует DCount для генерации рейтинга.
SELECT
m1.state,
m1.names,
DCount("names", "MyTable",
"state ='" & state & "' AND " & "names <= '" & names & "'") AS rank
FROM MyTable AS m1
ORDER BY m1.state, m1.names;
Оба эти запроса дают этот набор результатов с примерами данных:
state names rank
FL Abe 1
FL Bart 2
FL Charlie 3
GA Deleanor 1
GA Mary 2
Обратите внимание, я предположил уникальные комбинации состояния и имени.