Автоматическая установка контрольных дат

Автор sever22lr, 4 апреля 2014, 05:48

0 Пользователи и 1 гость просматривают эту тему.

sever22lr

Здравствуйте!
Есть необходимость задать в форме несколько полей с датами:
1. дата составления документа
2. дата его рассмотрения
3. дата вступления в действие
4. дата исполнения

Первые две вводятся в форму в ручную. Хотелось бы, что бы третья автоматически вставала в соответствующее поле формы, но дата должна быть на 10 дней больше второй даты (если дата рассмотрения 05.04.14, то дата вступления в действие - 16.04.14). Так же и  с четвертой датой, но она на 60 дней больше чем третья дата (т.е. если третья - 16.04.14, то четвертая - 17.06.14).

rogi

#1
Я в таких случая поступаю хитрым образом:
1. Создаю табличку с невидимыми границами
2. Выделяю ячейки, где надо разместить поля с датами
3. Правой кнопкой мыши на них и выбираю пункт Числовой формат (либо меню Таблица -> Числовой формат)
4. Выбираю формат даты, например 31.12.1999
5. Забиваю исходные даты вручную
6. В ячейках, где надо рассчитать даты, встаю в ячейку, нажимаю F2 и появляется панель формул (слева вверху, см. скриншот)
7. Пишу формулу, только вместо адреса просто тыкаю мышкой на нужную ячейку.
8. Enter, и вуаля.
Файл с примером прикрепляю

P.S. Кстати, даты другие немного получаются  ;)

[вложение удалено Администратором]

sever22lr


rogi

Прошу прощения, что-то туплю с утра :-\ и не посмотрел в какой ветке отвечаю.
А зачем Вам хранить дату вступления в действие и дату исполнения в базе - это ведь переменные? Их всегда можно рассчитать из даты рассмотрения...

rogi

Рассчитать можно через создание запроса на основании исходной таблицы.
В запросе кроме нужных полей добавить 2 новых поля, в которых будут находиться дата вступления в действие и дата исполнения.
Источником данных ставить дату рассмотрения.
Потом редактировать запрос в режиме SQL и немного подправить:
1. Найти адрес даты вступления в действие и изменить его на вид (дата вступления в действие + 10)
2. То же самое с датой исполнения, только ставить +70.
Вот как-то так.


sever22lr

SELECT "Журнал регистрации протоколов"."Дата рассмотрения" AS "Дата рассмотрения", "Журнал регистрации протоколов"."Дата вступления постановления в силу" AS "Дата вступления постановления в силу", "Журнал регистрации протоколов"."Дата оплаты штрафа" AS "Дата оплаты штрафа" FROM "Журнал регистрации протоколов" "Журнал регистрации протоколов"

Пытался ставить +10 и + 70 и до AS и после. Не помогает...

rogi

Да, я как-то упустил, что даты просто так не суммируются.
А DATEADD() не работает...