Гость в Аксессе, вторую табличку "где перечислены все имена, встречающиеся в table1.names" можно выкинуть :)
Зато вместо нее понадобится другая табличка Nums с единственным полем n = списку натуральных чисел от 1 до (максимальной длины строки в поле table1.names + 2).
Берите, вобщем, от 1 до 257 - не ошибетесь, если поле текст, а не Мемо.
Запрос такой:
SELECT First(T.num) AS num,
First(T.txt) AS txt,
Trim(Mid(";" & T.names & ";", Max(N1.n+1), N2.n - Max(N1.n+1))) AS OneName
FROM T, Nums AS N1, Nums AS N2
WHERE N2.n > N1.n
AND N2.n <= Len(T.names)+2
AND Mid(";" & T.names & ";", N1.n, 1)=";"
AND Mid(";" & T.names & ";", N2.n, 1)=";"
GROUP BY T.names, N2.n;