Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите с Access!!!

7.6K
22 апреля 2007 года
Dick_H
56 / / 20.02.2006
Доброго времени суток! У меня проблема... :(
Вообщем нужно реализовать в Access процедуру автоматического создания графика дежурств на один месяц по схеме "сутки через двое" или "сутки через трое".
При этом необходимо учесть, что дату отсчета этого графика вводит пользователь.
Т.е. есть например:
-Иванов-
-Петров-
-Сидоров-
Указываем дату начала дежурств, например: 1.04.07.
Таким образом,
-Иванов- дежурит 1.04.07
-Петров- дежурит 2.04.07
-Сидоров- дежурит 3.04.07
а дальше соотвественно 4.04.07 снова Иванов... и т.д.
Может кто сталкивался с подобным? Буду весьма признателен за помощь!
27K
23 апреля 2007 года
microkoder
5 / / 20.04.2007
Цитата: Dick_H
Доброго времени суток! У меня проблема... :(
Вообщем нужно реализовать в Access процедуру автоматического создания графика дежурств на один месяц по схеме "сутки через двое" или "сутки через трое".
При этом необходимо учесть, что дату отсчета этого графика вводит пользователь.
Т.е. есть например:
-Иванов-
-Петров-
-Сидоров-
Указываем дату начала дежурств, например: 1.04.07.
Таким образом,
-Иванов- дежурит 1.04.07
-Петров- дежурит 2.04.07
-Сидоров- дежурит 3.04.07
а дальше соотвественно 4.04.07 снова Иванов... и т.д.
Может кто сталкивался с подобным? Буду весьма признателен за помощь!


А не лучше ли это организовать в MS Project? Там, если не ошибаюсь что-то подобное как раз и используется. Да и с Access можно будет потом почти без проблем связать :)

7.6K
23 апреля 2007 года
Dick_H
56 / / 20.02.2006
Цитата: microkoder
А не лучше ли это организовать в MS Project? Там, если не ошибаюсь что-то подобное как раз и используется. Да и с Access можно будет потом почти без проблем связать :)



да дело в том, что это все нужно сделать используя стандартные средства MS Access.
Будь моя воля, я бы на Delphi это все сделал, но так нельзя... вот и сижу голову ломаю... ну никак у меня это не получается :(

263
23 апреля 2007 года
koltaviy
816 / / 16.12.2004
А в чем проблема-то собственно?!! Что у тебя именно не получается?
7.6K
23 апреля 2007 года
Dick_H
56 / / 20.02.2006
Цитата: koltaviy
А в чем проблема-то собственно?!! Что у тебя именно не получается?



Вот у меня как раз и не получается организовать это автоматический расчет... я уже запутался, то ли мне это делать как запрос, или как обновление таблицы (но при обновлении нужно иметь уже какие-то данные в таблице...).
Может есть акие предложения как организовать? Может кто подскажет какой запрос сделать и как?

373
23 апреля 2007 года
unmoved
216 / / 28.11.2004
честно сказать, тоже не монимаю что не получается, ты скажи что не так в плане инструментальных средств, если проблема в адгоритме, то тут извени не совсем в этотт форум.
263
23 апреля 2007 года
koltaviy
816 / / 16.12.2004
1) Делаешь график на определенный период.
2) Определяешь какое количество людей у тебя будет работать
3) В цикле перебираешь даты с начальной до конечной. При каждой итерации меняешь рабочего на следующего. Как только количество рабочих исчерпано, сбрасываешь их счетчик на первый(нулевой), а даты продолжаешь перебирать.

Смысл примерно такой(это всего лишь схема, расписанная в коде).
Код:
..
Dim dFirst, dLast as Date
Dim current, count as Integer
..
current = 0
Do While (dFirst <= dLast)
   ..
   men(current).DateToWork = dFirst
   If (current = count - 1) Then
        current = 0
   Else
        current = current + 1
   EndIF
 
   dFirst = dFirst + 1
   ..
Loop
..

Дальше уже смотри по ситуации:
Если у тебя работники хранятся в таблице, то просто проходишься по таблице, а как только таблица заканчивается возвращаешься к первой записи.
Вообщем, ньюансов море, зависящих от конкретной реализации.
У тебя должна существовать таблица с расписанием рабочих типа:
РАСПИСАНИЕ(Код, Работник_Код, Дата)
Туда и добавляй записи при генерации расписания. Если таблицу возможно придется редактировать - это уже другой вопрос - создавай для этого отдельную форму, ну или как там тебе нужно это организовать..
1
23 апреля 2007 года
kot_
7.3K / / 20.01.2000
Цитата: Dick_H
Вот у меня как раз и не получается организовать это автоматический расчет... я уже запутался, то ли мне это делать как запрос, или как обновление таблицы (но при обновлении нужно иметь уже какие-то данные в таблице...).
Может есть акие предложения как организовать? Может кто подскажет какой запрос сделать и как?


Еще раз спрошу я - проблема в чем? Весе что тебе нужно - организовать справочник сотрудников, справочник календарь и собственно таблицу графика которая будет устанавливать соответствие. Как вариант.
Не очень понятно - что такое

Цитата:
При этом необходимо учесть, что дату отсчета этого графика вводит пользователь


имеется ввиду что он должен получить свой график от указанной даты или ...?

7.6K
23 апреля 2007 года
Dick_H
56 / / 20.02.2006
да, все верно... то есть "пользователь 1" садиться за эту бд и указывает свою дату отсчета графика дежурст, например это 23.04.07... далее нажимает на кнопку "Составить" (это для примера)... и Access на автомате состовляет график дежурст (допустим по схеме "сутки через двое").
Далее пользователь 2 уже может указать свою дату, например 1.04.07...
график от пользователя 1 при этом не нужно сохранять, просто его показать и все. также и от пользователя 2.
Проблема в том, что я никак немогу составить правильный алгорит... я понимаю, что если составлять график по схеме "сутки через двое", то это к введеной дате прибавлять 4 дня: если все я правильно понимаю, то нужно сделать так:
Таблица: "График": (1.04.07 дату указал пользователь)
-------------------------------------------------------
| Фамилия | День1 | День2 | День3 |
-------------------------------------
| Иванов |1.04.07|4.04.07 |7.04.07|
-------------------------------------
| Петров |2.04.07|5.04.07 |8.04.07|
-------------------------------------
| Сидоров |3.04.07|6.04.07 |9.04.07|
-------------------------------------
При этом, указывается дата только отсчета, в данном случае это 1.04.07, остальные даты расставляються автоматически.
Как такое мне организовать? или может быть есть варианты проще?
1
23 апреля 2007 года
kot_
7.3K / / 20.01.2000
Ну а если графики друг на друга наложатся? Например оба пользователя введут одинаковую дату? В чем смысл? И если их не надо сохранять - то зачем бд?
я бы делал таблицу:
ид пользователя | Ид даты
а таблица соответственна связанна вторичными ключами со справочниками пользователей и календарем. Тогда вопервых достаточно просто ввести допустим праздничные дни или какую нибуть херню если понадобится. Но это так мысли. А расчет даты делаешь например запросом через dateadd или как она там.
263
24 апреля 2007 года
koltaviy
816 / / 16.12.2004
Цитата: kot_
Ну а если графики друг на друга наложатся? Например оба пользователя введут одинаковую дату? В чем смысл? И если их не надо сохранять - то зачем бд?
я бы делал таблицу:
ид пользователя | Ид даты
а таблица соответственна связанна вторичными ключами со справочниками пользователей и календарем. Тогда вопервых достаточно просто ввести допустим праздничные дни или какую нибуть херню если понадобится. Но это так мысли. А расчет даты делаешь например запросом через dateadd или как она там.


Судя по вот этому:

Цитата: Dick_H

..
-------------------------------------------------------
| Фамилия | День1 | День2 | День3 |
-------------------------------------
| Иванов |1.04.07|4.04.07 |7.04.07|
-------------------------------------
| Петров |2.04.07|5.04.07 |8.04.07|
-------------------------------------
| Сидоров |3.04.07|6.04.07 |9.04.07|
-------------------------------------
..


и вот этому:

Цитата: Dick_H

..
график от пользователя 1 при этом не нужно сохранять, просто его показать и все
..


аффтор не совсем понимает, что такое БД и с чем ее едят!!

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог