Пишу на MS SQL, в MS Access могут быть нюансы, но я бы решил так
1) Во временную таблицу или CTE сделал выборку по условию поиска, только условие по размеру слелал бы +- 1 указнный в поиске
SELECT *
INTO #tmp_search
FROM Товары
WHERE {условия поиска кроме рамера}
AND [размер] BETWEEN [ИскомыйРазмер] - 1 AND [ИскомыйРазмер] + 1
2)
SELECT
FROM #tmp_search AS t1
INNER JOIN #tmp_search AS t2
WHERE t1.[артикул]<>t2.[артикул]
AND t2.[размер] BETWEEN t1.[размер] - 1 AND t1.[размер] + 1
AND t1.[размер] = {условие по искомому размеру}
==========================================================================================
Еще один вариант
SELECT a.[артикул], b.[артикул]
FROM Товары AS a
INNER JOIN Товары AS b
ON (a.[артикул]<>b.[артикул] AND a.[форма]=b.[форма] AND a.[цвет]=b.[цвет])
AND b.[размер] BETWEEN a.[размер]-1 AND a.[размер]+1
WHERE {условия поиска по a})