Каждой строчке BOM-а могут быть найдены сотни позиций. Создается таблица результатов поиска с соотношением один-ко-многим.
Строчки BOM-а получают подчиненые субтаблицы с результатами.
Потом вычисляются минимальные цены для заданного объема закупки(нажать Recalc Lowest Price) и записываются обратно в BOM.
Потом цены конвертируются в заданную валюту(обменный курс в таблице tbl_CurrRates) и считает себестоимость BOM-а
Можно сканировать по всему спику, можно по каждому компоненту отдельно. Поиск можно задавать по любому полю BOM-а.
Сам BOM ипортируется из таблицы EXCEL (нажать Import BOM). Таблица может содержать любые столбцы, главное чтобы имела заголовок.
Таблицы которые генерирует Altium подходят идеально.
Код работает в MS Access 2013 64-х битной версии.
Перед использованием надо получить у Octopart свой ключ API для данного приложения (выдают с минимумом формальностей).
Сканирование идет со скоростью не более 3 строк BOM-а в секунду. Это ограничение Octopart для бесплатной подписки. Для реальных BOM-ов более чем нормально.
Программа учитывает количество по BOM-у и еще умножает на величину в поле "multiplier".
Минимальная цена расчитывается для общего получившегося количества и выводится только если в стоке есть необходимое количество.
Нажмите для просмотра прикрепленного файла
Код не окончательный и не референсный, предназначен для допиливания.

Сылки на API других аналогичных WEB сервисов приветствуются.
Собственно код - Нажмите для просмотра прикрепленного файла