|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.12.2009, 09:50 | #1 |
Пользователь
Регистрация: 21.12.2009
Сообщений: 10
|
Обновление поля со списком в подчиненной форме
Автоматизирую подстановку активных абонементов в программе учета фитнес-клуба:
Таблицы: Абонемент (ID абонемент, Дата начала, Дата конца) Занятие (ID занятие, Дата занятия) Посещение (ID занятие, ID абонемент) Форма: Занятие (ID занятие, Дата занятия) Подчиненная форма Посещение (ID занятие, ID абонемент) где [ID Абонемент] - поле со списком активных абонементов на основе запроса: SELECT Абонемент.[ID абонемент] FROM Абонемент WHERE ((([Forms]![Занятие]![Дата занятия])>=[Абонемент].[Дата начала] AND ([Forms]![Занятие]![Дата занятия])<=[Абонемент].[Дата конца])); Проблема: Поле со списком [ID абонемент] обновляется только при первом открытие формы, а надо чтобы оно обновлялось при любом изменении даты в главной форме (изменении значении, переходе на другую запись) Аналогичных тем много, ситуации похожие, но трудно уловить само правило: По аналогии с одним из примеров сделал следующую конструкцию: me!Подчиненная_форма_посещение![ID_абонемент].requery поставил ее в события Обновление и Изменение поля [Дата занятия], но не помогло. Просьба помочь |
22.12.2009, 11:36 | #2 |
Участник клуба
Регистрация: 10.08.2009
Сообщений: 1,796
|
Здравствуйте touchka.
1. для сравнения значения с диапазоном применим оператор Between 2. у MS Access существует (подтвержденная производителем) проблема при обращении к объекту в SQL конструкции (в Вашем случае поле с датой), в конструкторе всё замечательно, результат применения нулевой. Решается проблема или использованием в качестве источника строк сохраненного запроса (в нем может присутствовать обращение к объекту), или в SQL конструкции получать значение поля из пользовательской функции (в примере). 3. настоятельно рекомендую не использовать для имен объектов БД (таблицы, поля таблиц, запросы, формы,...) длинные имена (Активные абонементы), используйте или сокращения - АктАбон, или такие варианты АктивныеАбонементы, Активные_абонементы. Речь не только о "хорошем тоне", это избавит от проблем в случае конструирования с использованием мастера, и уменьшит объем кода и исправлений во всех случаях. Удачи Вам. Евгений. |
22.12.2009, 15:45 | #3 |
Пользователь
Регистрация: 21.12.2009
Сообщений: 10
|
Спасибо большое Евгений за подробный расклад! Счас экспериментирую с предложенной Вами функцией, дело сдвинулось!
|
25.12.2009, 23:12 | #4 |
Пользователь
Регистрация: 21.12.2009
Сообщений: 10
|
Здравствуйте Евгений!
Доработанная Вами база помогла мне уже значительно продвинутся в своем проекте, но появляются нюансы в рамках этой же темы, которые хотелось бы сгладить: 1. Не могу добится обновления поля со списком [ID абонемент] в подчиненной форме не только при изменении поля [Дата занятия] в главной форме Занятия, но и при переходе по записям главной формы и внесении изменений в форму Абонементы. 2. Момент, который меня обрадовал, но насторожил - если после выбора активного абонемента в поле со списком [ID абонемент] изменить [Дату занятия] на дату вне условия активности абонемента, то выбранный абонемент продолжает оставаться в списке выбранных. Это нормально, т.е. ограничение поля со списком работают только при выборе элемента и не могут сыграть злую шутку при нечаянных изменениях дат занятия или дат активности абонемента? Блок, который будет контролировать изменения, я сейчас пишу, но все-таки.. |
26.12.2009, 13:20 | #5 |
Пользователь
Регистрация: 21.12.2009
Сообщений: 10
|
Здравствуйте Евгений!
1. Как добится обновления поля со списком [ID абонемент] в подчиненной форме не только при изменении поля [Дата занятия] в главной форме Занятия, но и при переходе по записям главной формы и внесении изменений в форму Абонементы. 2. Момент который обрадовал, но насторожил - ограничение на поле со списком не влияют на уже выбранный элемент, это нормально? Счас пишу блок, который ограничит изменения Даты занятия, Даты начала, Даты конца для сохранения условия активности уже выбранных абонементов, но все-таки. |
27.12.2009, 19:34 | #6 |
Участник клуба
Регистрация: 10.08.2009
Сообщений: 1,796
|
1. если вынести команду обновления в отдельную процедуру и разместить её в модуле, это обновление можно вызывать из любого события любой формы
Код:
|
27.12.2009, 23:46 | #7 |
Пользователь
Регистрация: 21.12.2009
Сообщений: 10
|
Евгений спасибо большое!!!
|
01.08.2012, 17:06 | #8 |
Новичок
Джуниор
Регистрация: 01.08.2012
Сообщений: 1
|
Вся информация во вложения:
За ранее спасибо. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Запрос в подчиненной форме | Kvins | Microsoft Office Access | 1 | 30.09.2010 12:31 |
Обновление полей со списком | katrina-n | Microsoft Office Access | 3 | 18.12.2009 20:33 |
Обновление данных подчиненной формы из другой подчиненной формы | smoky | Microsoft Office Access | 2 | 15.08.2009 15:28 |
Видимость полей в подчиненной форме | Sparxy | Microsoft Office Access | 2 | 02.06.2009 21:40 |