Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.10.2013, 10:37   #1
swetlang
 
Регистрация: 14.10.2013
Сообщений: 4
Вопрос установка условий для вычисляемого поля в ACCESS 2003

Я новичек в Access и тем более в языках программирования. Но, я учусь...
Нужна ваша помощь в создании небольшой базы.
Eсть парк почтовых вагонов 50 шт. характеристика вагона:
дата изготовления, номер кузова, тип колодок тормозных, цвет, максимальная скорость. через пол года с начала эксплуатации (даты изготовления) проходится технический осмотр ТО-3, периодичность прохождения каждые пол года, но ....

через год с начала эксплуатации проходит деповский ремонт ДР. и если дата планируемого ТО-3 превышает дату планируемого ДР, то исчисление даты ТО-3 план происходит от ДР последний.
Почему это возможно? Потому, что при плановом 17.03. фактически ремонт производится 16.04 или 25.03 и т.д.

через 5 лет от начала эксплуатации производится капитальный ремонт КР-1. Поэтому, если ДР планируемый > КР-1 планируемого, то дату ДР надо исчислять от КР-1 последний

Неприятность ещё и в том, что КР не один - их 2.
КР-2 проводится через 10 лет от начала эксплуатации. и если дата КР-1 планируемый >КР-2 планируемый, то исчисление надо проводить от КР-2 последний.

Я написала запрос на выборку с вычисляемым полем КР_1ПЛАН: IIf([ХАРАКТЕРИСТИКА ПВ]![КР1 ПОСЛЕДНИЙ]>([ХАРАКТЕРИСТИКА ПВ]![КР2 ПОСЛЕДНИЙ];[ХАРАКТЕРИСТИКА ПВ]![КР2 ПОСЛЕДНИЙ]+5*365;[ХАРАКТЕРИСТИКА ПВ]![КР1 ПОСЛЕДНИЙ]+5*365), но у меня есть вагоны, которые ещё не проходили ни КР-1 ни КР-2. При выполнении запроса появляется запрос параметра пустого КР-1 и КР-2.
Как поставить условие - если КР-1 пусто, то КР-1 ПЛАН = [ХАРАКТЕРИСТИКА ПВ]![ДАТА ПОСТРОЙКИ]+5*365

Вагоны назначаются в рейс.
Рейс имеет ряд условий: колодки, цвет и максимальная скорость. В рейсе вагоны находятся несколько дней, недель... И вот В ЭТО ВРЕМЯ НЕ ДОЛЖЕН НАСТУПИТЬ НИ ОДИН ИЗ СРОКОВ РЕМОНТА!!!!
Срок эксплуатации вагона 28 лет. Сейчас в парке 60% вагонов у которых этот срок перевалил за 30-35. Но им по акту продлили сроки эксплуатации.

В результате надо, что бы в одной форме можно было назначать вагоны, подходящие по критериям.
В другой форме выставлять место нахождения вагона на начало смены - для отчета. В третьей планировать погрузку и разгрузку вагонов. Все должно учитывать текущую дату. И дополнительно информировать : "ДО НАЧАЛА РЕМОНТА КУЗОВА 42012 ОСТАЛОСЬ 7 ДНЕЙ!! НЕ ЗАБУДЬТЕ ОФОРМИТЬ ЗАЯВКУ!"
Вложения
Тип файла: rar ПВ.rar (174.7 Кб, 8 просмотров)
swetlang вне форума Ответить с цитированием
Старый 14.10.2013, 18:53   #2
Agapov_stas
Пользователь
 
Регистрация: 23.11.2009
Сообщений: 54
По умолчанию

Цитата:
Сообщение от swetlang Посмотреть сообщение
Я написала запрос на выборку с вычисляемым полем КР_1ПЛАН: IIf([ХАРАКТЕРИСТИКА ПВ]![КР1 ПОСЛЕДНИЙ]>([ХАРАКТЕРИСТИКА ПВ]![КР2 ПОСЛЕДНИЙ];[ХАРАКТЕРИСТИКА ПВ]![КР2 ПОСЛЕДНИЙ]+5*365;[ХАРАКТЕРИСТИКА ПВ]![КР1 ПОСЛЕДНИЙ]+5*365), но у меня есть вагоны, которые ещё не проходили ни КР-1 ни КР-2. При выполнении запроса появляется запрос параметра пустого КР-1 и КР-2.
Как поставить условие - если КР-1 пусто, то КР-1 ПЛАН = [ХАРАКТЕРИСТИКА ПВ]![ДАТА ПОСТРОЙКИ]+5*365
Код:
SELECT 
[ХАРАКТЕРИСТИКА ПВ].[КУЗОВ №], 
[ХАРАКТЕРИСТИКА ПВ].СЕРИЯ, 
[ХАРАКТЕРИСТИКА ПВ].[ДАТА ПОСТРОЙКИ], 
[ХАРАКТЕРИСТИКА ПВ].КОЛОДКИ, 
[ХАРАКТЕРИСТИКА ПВ].ЦВЕТ, 
[ХАРАКТЕРИСТИКА ПВ].СКОРОСТЬ, [ХАРАКТЕРИСТИКА ПВ].[ТО_3 ПОСЛЕДНИЙ], 
[ХАРАКТЕРИСТИКА ПВ].[ДР ПОСЛЕДНИЙ], 
[ХАРАКТЕРИСТИКА ПВ].[КР_1 ПОСЛЕДНИЙ], 
[ХАРАКТЕРИСТИКА ПВ].[КР_2 ПОСЛЕДНИЙ],
[КР_2 ПОСЛЕДНИЙ]+(10*365+2) AS [КР_2 ПЛАН], [ДАТА ПОСТРОЙКИ]+(28*365+7) AS [ДАТА ОСТАНОВКИ],

IIF(IsNull([ХАРАКТЕРИСТИКА ПВ].[КР_1 ПОСЛЕДНИЙ]), ([ХАРАКТЕРИСТИКА ПВ]![ДАТА ПОСТРОЙКИ]+5*365),IIf([ХАРАКТЕРИСТИКА ПВ].[КР_1 ПОСЛЕДНИЙ]>[ХАРАКТЕРИСТИКА ПВ].[КР_2 ПОСЛЕДНИЙ],([ХАРАКТЕРИСТИКА ПВ].[КР_2 ПОСЛЕДНИЙ]+5*365),([ХАРАКТЕРИСТИКА ПВ].[КР_1 ПОСЛЕДНИЙ]+5*365))) AS КР_1ПЛАН

FROM [ХАРАКТЕРИСТИКА ПВ];
Agapov_stas вне форума Ответить с цитированием
Старый 16.10.2013, 09:41   #3
swetlang
 
Регистрация: 14.10.2013
Сообщений: 4
Печаль

Agapov_stas
Спасибо за ответ, но программа ругается на отсутствие оператора в блоке
[КР_2 ПОСЛЕДНИЙ]+(10*365+2) AS [КР_2 ПЛАН], [ДАТА ПОСТРОЙКИ]+(28*365+7) AS [ДАТА ОСТАНОВКИ],
swetlang вне форума Ответить с цитированием
Старый 16.10.2013, 09:45   #4
Agapov_stas
Пользователь
 
Регистрация: 23.11.2009
Сообщений: 54
По умолчанию

Возможно не понимает к чему алиас относится.
Попробуйте так:
Код:
([КР_2 ПОСЛЕДНИЙ]+(10*365+2)) AS [КР_2 ПЛАН], ([ДАТА ПОСТРОЙКИ]+(28*365+7)) AS [ДАТА ОСТАНОВКИ]
Agapov_stas вне форума Ответить с цитированием
Старый 21.10.2013, 10:03   #5
swetlang
 
Регистрация: 14.10.2013
Сообщений: 4
По умолчанию

Спасибо, но он все-равно ругается
swetlang вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка вычисляемого поля Program(m)er БД в Delphi 3 19.09.2013 14:55
Условие для вычисляемого поля в форме Malina33 Microsoft Office Access 2 13.04.2012 11:46
Фильтр вычисляемого поля a_n_n_a БД в Delphi 5 21.03.2012 04:09
MS Access 2003: Запись строк с завершающими пробелами в текстовые поля grh Microsoft Office Access 1 16.03.2012 16:13
Сохранить значение вычисляемого поля Nika03 БД в Delphi 8 10.05.2010 22:17