Титул
Создание простых приложений баз данных для одного или небольшой группы пользователей.
Бесплатно для личного и коммерческого использования.

Подчиненные запросы, как альтернатива таблицам.

Как известно, для хранения подчиненных данных используется таблица. Таблица имеет свою достоинства и недостатки. Основными недостатками являются: в таблицах нельзя создавать подчиненные таблицы, таблицу нельзя открыть в отдельной закладке, как форму, и работать со всеми записями. Подчиненные запросы не имеют таких недостатков. Подчиненный запрос - это запрос отображающий данные некоторой формы, логически принадлежащие текущей родительской записи.
Для создания подчиненного запроса необходимо:
1. Две формы: А и Б.
2. В форме А должен быть объект, ссылающийся на форму Б.
Теперь в форму Б можно добавить запрос, отображающий данные, принадлежащие текущей записи.

Рассмотрим на конкретном примере. К статье приложен пример базы данных, откройте ее. В этой базе:
1. Две формы: "Заказы" и "Клиенты".
2. В форме "Заказы" есть объект "Заказчик", который ссылается на форму "Клиенты".
Теперь мы можем в форму "Клиенты" добавить запрос, отображающий заказы текущего клиента.

Подчиненные запросы, как альтернатива таблицам.

На рисунке показан подчиненный запрос в форме "Клиенты". Откройте отбор (отмечен красной стрелкой на рисунке).

Подчиненные запросы, как альтернатива таблицам.

Обратите внимание на фильтр. Заказы фильтруются по объекту "Заказчик". Функция RECID передает в фильтр идентификатор текущей записи формы "Клиенты" (помните ведь, что объект хранит идентификатор записи?). Вот таким образом мы создали подчиненную связь между формами "Клиенты" и "Заказы".

Примечание. Значения, передаваемые в фильтр, являются параметрами при создании новой записи в запросе. Для этого необходимо соблюдение одного условия: должна использоваться операция сравнения = (равно). В данном случае, при создании нового заказа в запросе, в форму "Заказы" автоматически вставится текущий клиент.

Пример базы: Скачать.
<< Статьи

Контакты

Поддержать проект

Пожертвовать