Форумы HiProg.com - MS ACCESS, VBA, VB

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

ник: osmor
Сразу скажу делаться будет не на ACCESS. (пишу в основном что бы услышать интересные идеи и возможно самому изложенный на "бумаге" вопрос поможет поиску решения.)
Описание.
Есть документ.
В документе кроме прочих полей есть поля:

Сис. админ.
Нач. отд.
Нач. фин.
бух.
Снаб.

ну и еще несколько из этой же серии.
В этих полях прописываются фио людей исполняющих ДЛЯ ЭТОГО документа указанные роли (бухгалтера, нач отдела и т.д.)
например

Сис. админ.  - Иванов
Нач. отд. - Петров
Нач. фин. - Петров
бух. - Сидорова
Снаб. - Иванов


Документ движется по этапам (вперед - назад и перескакивает в зависимости от схемы прохождения).
На каждом этапе документ может править только один из вышеуказанного списка тот чья должность является исполняющей данный этап (ну и еще администратор системы)
Он вносит нужную информацию и отправляет на другой этап.
Например.

Этап - "утвердение финансировани" 
Исполнитель - "Нач.фин."
для нашего примера это будет Петров (для другого документа может быть кто-то другой, тот чьи фио записаны в поле  "Нач.фин."

при похождении по этапам народ получает всякие извещения и напоминания (обычно тот на чьем этапе находится документ)

Все хорошо, но вот Петров ушел в отпуск на 2 недели. Нужно дать права на редактирование документа лицу его замещающему, причем ни под логином Петрова, а под своим.
В принципе решается легко. Пишем документ определяющий замены.

дата с
дата по
кого 
на кого


Потом побегаем по документам и меняем одно фио на другое в зависимости от дат.
Например
с 1.12.2011
по 10.12.2011
Петрова меняем на Барабулькина.
документ получает след. вид

Сис. админ.  - Иванов
Нач. отд. - Барабулькин
Нач. фин. - Барабулькин
бух. - Сидорова
Снаб. - Иванов

Теперь Барабулькин может править все документы относящиеся к этапам которые выполнял Петров и он же будет получать все извещения и ему будут звонить в случае проблем (ведь в документе его ФИО).

когда наступит 20.12.2011 произойдет обратная замена.

Все хорошо если подменяющий при обычной работе не участвует о работе с документом.
Но представим себе ситуацию что Петрова подменяет Сидорова!
При использовании вышеуказанного алгоритма подмена произойдет без проблем.

Сис. админ.  - Иванов
Нач. отд. - Сидорова
Нач. фин. - Сидорова
бух. - Сидорова
Снаб. - Иванов

А вот при возврате Петрова из отпуска начнется каша

Сис. админ.  - Иванов
Нач. отд. - Петров
Нач. фин. - Петров
бух. - Петров  ( а должна остаться Сидорова!!!!)
Снаб. - Иванов


Вот собственно и вопрос:
КАК сделать обратную подмену только тех полей которые изменились при прямой подмене?

Пока есть только одна идея
Идея 1
В документе сохраняется список полей которые были изменены при обработке подмены. Тогда только эти поля будут обновлены при возврате к исходному состоянию


может кто что подскажет?


Ваше имя:

Пароль:

Цитировать: [quote][/quote] Код: [code][/code]
Жирный: [b][/b] Наклонный: [i][/i]
URL: [url][/url] 

Сообщение:

 Размер файла не более 50 Кбт. Большие файлы можно размещать на www.slil.ru

Прикрепить:

 

Для вставки смайлов в текст щелкните по значку.