| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MS Access > Как изменить условие запроса? |
| Автор: Irina_N 13.2.2008, 12:17 | ||
Есть Форма1. На ней подчиненные формы Агенты и Поставщики. При выборе агента, в форме Поставщики должны отображаться все поставщики, с которыми работает данный агент. Таблицы Агенты и Поставщики связаны через таблицу АгентыПоставщики. Получается, что подчиненная форма Поставщики должна быть основана на запросе типа:
Но как можно менять условие запроса? Ведь при выборе агента в запросе должен быть изменен ID агента. Спасибо. |
| Автор: bopoha 13.2.2008, 12:41 | ||
| У формы есть событие текущая запись. При возникновении этого события на форме Агенты необходимо устанавливать фильтр на форме поставщиков. Передать ссылку на форму Поставщиков в форму Агентов. Из формы Агентов можно накладывать фильтр.
Или вызывать собственный метод на форме Поставщиков с кодом Агента, который сам все сделает... |
| Автор: Irina_N 13.2.2008, 13:24 |
| Таблицы связаны. Я просто не знаю, как правильно сделать такую форму, чтобы при выборе Агента отображались поставщики этого агента. Поэтому и спрашиваю. |
| Автор: Irina_N 13.2.2008, 13:51 |
| Значит, правильнее будет использовать не таблицу Поставщики, а таблицу АгентыПоставщики с использованием фильтра? Тогда как правильно использовать фильтр? форма.Filter = "Поле = значение" форма.FilterOn = True Поле понятно. А значение? Ведь оно будет меняться. Объясните пожалуйста. |
| Автор: Akina 13.2.2008, 14:05 | ||
Это не связало формы
Доверьте размещение подчиненной формы на основной форме мастеру (возможно, его придеься подключить) - и установите правильную связь. Остальное будет работать безо всякого кода. |
| Автор: bopoha 13.2.2008, 16:38 | ||||||
В этом случае не будет видно списка Агентов...
Конечно значение будет меняться.... Брать его у формы Агентов:
|
| Автор: Irina_N 14.2.2008, 11:14 | ||
Что я не так поняла? Вместо того, чтобы при выборе агента отображались поставщики этого агента в форме22, появляется окно, где предлагается ввести номер агента.
|
| Автор: Akina 14.2.2008, 11:18 |
| Автор: bopoha 14.2.2008, 11:24 |
Т.е. не получится увидеть список агентов и список поставщиков... Если делать мастером, то получится обычная форма с подчиненной формой поставщиков... |
| Автор: Irina_N 14.2.2008, 11:53 |
| Мастером действительно не получается сделать так, как нужно. Главная форма связана с подчиненной, но не видно списка агентов - есть только переход по записям. |
| Автор: Akina 14.2.2008, 12:10 |
Надо создать самостоятельно обе формы, и затем размещать одну на другой - мастер подключится на этапе установления связи. Значит, его (вернее, контрола для его отображения) нет на макете формы на начальном этапе создания. |
| Автор: Irina_N 14.2.2008, 12:28 |
| Тогда как разместить одну форму на другой, если обе должны быть в табличном виде? Получается, что формы Агенты и Поставщики должны быть размещены на третьей форме? Как их связать? |
| Автор: Akina 14.2.2008, 12:35 |
По-моему, форм таки три... причем Поставщики - подчиненная для Агенты, которая в свою очередь подчиненная (или, может, внедренная?) для Форма1 |
| Автор: bopoha 14.2.2008, 12:53 | ||
Так не выйдет Форм действительно три... Основаная, без данных Агенты Поставщики При изменении записи на форме Агентов, меняется фильтр на форме Поставщиков. Работы на 30 мин... В чем сложности? |
| Автор: Irina_N 14.2.2008, 13:29 |
| Может быть, действительно всё просто, но у меня мало опыта и никак не получается правильно сделать. Так как же всё-таки правильно сделать этот фильтр? |
| Автор: bopoha 14.2.2008, 15:09 | ||
На форме Агенты, на событии текущая запись
Все! Тест на русском заменить на свой вариант... |