Что бы не растекаться мысль по древу, раз вы сказали, что вас устраивает тривиальный вариант:
Для MS Access
1. надо освоить:
а)
http://office.microsoft.com/ru-ru/acces ... 0043151049 и/или
support.microsoft.com/kb/209207/ru
б) прочитать раздел в руководстве или справочнике по Access, как создавать БД Access, которые не выводятся на экран. Основное окно MS Access скрывается какой-то командой в VBA, так сразу и не вспомню как называется.
в) создать макрос, который запустит программу VBA, так спрячет все, что не нужно и откроет форму, которая при закрытии закроет и Access, и не забудет передать фокус назад в MapInfo (вот это будет засада и еще какая, MapInfo - предельно непредсказуемо идиотски на это реагирует).
г) Научиться вызывать и обрабатывать строку, выдаваемую функцией VBA Access - Command() - это возможные параметры.
д) Полученные параметры преобразовывать в строку, которая может быть использована для задания фильтра для вызываемой формы.
е) В случае универсальности формы для нескольких таблиц или нескольких прилинкованных БД, надо освоить изменение
"источника данных" [Recordset]
2. Принять решение - как будут передаваться номера записей из MapInfo - списком в параметре или файлом. От этого зависит, что именно будет передаваться через параметр /cmd - для передачи номеров или пути к временному файлу с номерами строк.
3. Создать пустую БД Access, которая содержит только код, формы, а таблицы берет из прилинкованной БД. Это позволит избежать конфликта Access - MapInfo, при изменении таблиц или форм
Для MapBasic'a
а) освоить SelectionInfo и TableInfo
б) научитесь создавать кнопку в панели меню для запущенного MapBasic приложения. Это полностью можно содрать из руководства по любому MapBasic'у
в) проверьте как выполняется команда MapBasic Run Program [program_spec]. Обычно работает хорошо. И запускается, и выполняется, и параметры передаются.
г) Для выбранных записей получать номер поля rowID и название таблицы из которой они взяты
Для MapInfo:
а) Опрашиваемые таблицы MI лучше сохранить в формат MI+Access - тогда макросы и VBA в MS Access - будут обращаться к данным самой БД
б) вставить разработанную программу на MB в автозапуск MI или стандартные программы меню Tools. Только тогда необходимая кнопка будет доступна при каждом запуске MI. Иначе эту программу и кнопку придется вызывать в ручную.
------------------
Технология многократно апробирована и использована. По крайней мере до MS Office 2007. Как ведет себя этот зверь - предсказать сложно, но в нем по слухам опять появился Access RunTime, который позволяет создавать приложения-формы даже при отсутствии Access на машине и показывать их в обход самого Access.
------------------
Если получится, как вам хочется, то не забывайте, что некоторым пользователям можно давать БД в режиме ReadOnly, что бы они вам основные данные не попортили. Улучшений основной идеи - может быть море.
И гарантирую, что если получится, то следующим шагом захотите из формы вызывать гео-объект в окне карты MapInfo. Но это уже совсем другая история....
