A кросс-таблица кажется, что путь должен следовать, но я не мог заставить подзапрос работать, как предложено Parfait - пришлось использовать DCount :
TRANSFORM
First(q1.[html_link]) AS html_link
SELECT
[item]
FROM
(SELECT
item,
html_link,
DCount("*", "mytable", "item = '" & item & "' and html_link <= '" & html_link & "'") AS Index
FROM
mytable) AS q1
GROUP BY
[item]
PIVOT
"ImageLink" & q1.[index];
«Очистить» ссылку:
Left(Mid([html_link], InStrRev([html_link], "/") + 1), InStr(Mid([html_link], InStrRev([html_link], "/") + 1), ".") - 1) As Link