Есть вот такая простенькая БД (в круглых скобках указаны поля, из которых состоит таблица, а квадратными скобками задаётся таблица используемая для подстановки значений):
abstracts (id, name, descr)
abstracts_tree(id, parent[abstracts], node[abstracts])
objects(id, name, descry, abstract[abstracts])
objects_tree(id, parent[objecrs], node[objects])
Таблицы abstracts и abstracts_tree описывают типы объектов и иерархию этих типов.
Таблицы objects и objects_tree описывают типизированные значения и иерархию этих типизированных значений.
В MS Access есть возможность использовать одну таблицу для подстановки значению в другую (мастер подстановок). Также там есть возможность использовать для подстановки не всю таблицу, а делать выборку при помощи инструкций SQL.
Например, мне нужно, чтобы в таблице objects_tree в поле parent отображались только такие значения, типы которых не атомарны (т.е. состоят из каких-то других типов). Для того, чтобы этого добиться я для поля parent в настройках подстановки в качестве источника строк задаю такой запрос:
SELECT objects.id, objects.name
FROM objects
WHERE
(
SELECT COUNT(abstracts_tree.parent)
FROM abstracts_tree
WHERE abstracts_tree.parent = objects.abstract
) <> 0;
---
С этим запросом проблем нет – всё работает. Но вот для поля node мне нужно в источник строк засунуть запрос с параметром (чтобы в списке открывались только те значения, которые могут являться составными частями поля parent расположенного на этой же строке, т.е. мне надо, чтобы при изменении значения в поле parent менялся список подстановок для поля node).
Сам запрос с параметром я написал, вот он:
SELECT abstracts_tree.id, abstracts_tree.node, objects.id, objects.name, objects.abstract
FROM abstracts_tree, objects
WHERE abstracts_tree.parent=параметр And abstracts_tree.node=objects.abstract;
---
Вопрос: можно ли как-то сказать Access'у, чтобы он вместо строки «параметр» подставлял значение из соседнего поля «parent».
PS. Конечно, можно сделать свою форму ввода – там это делается без проблем, но хотелось бы подружить данный запрос с таблицей без использования дополнительных наворотов.
|